有关筛选条件的问题

23 篇文章 0 订阅
今天实现一个有关根据时间范围进行筛选的组件
效果如下:

在这里插入图片描述

话不多说 直接开摆
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="100px">
      <el-form-item>
        <el-select @change="changeChooseType" class="selSty" v-model="chooseType" placeholder="请选择"
          style="width: 110px;">
          <el-option v-for="item in dateTypeselect" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
        <el-date-picker class="selSty1" v-model="createTimes" type="daterange" value-format="yyyy-MM-dd HH:mm:ss"
          range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']"
          @change="radioDateInit()">
        </el-date-picker>
        <el-radio-group style="margin-left: 15px;" v-model="radioDate" @change="nowDay(radioDate)">
          <el-radio-button label="0" border>今天</el-radio-button>
          <el-radio-button label="3" border>近三天</el-radio-button>
          <el-radio-button label="30" border>本月</el-radio-button>
          <el-radio-button label="60" border>上月</el-radio-button>
          <el-radio-button label="365" border>本年</el-radio-button>
        </el-radio-group>
      </el-form-item>
      </el-form>

return {
        chooseType: "创建时间",
        //时间下拉菜单
        dateTypeselect: [{
          value: "创建时间",
          label: "创建时间",
        }, ],
        //单选框时间 默认选择3天
        radioDate: 3,
        createTimes:[],
}
methods:{
		//初始化时间
      initCreateDate() {
        this.radioDate = 3;
        let nowDate = new Date().getTime();
        this.createTimes = [
          this.timestampToTime(nowDate - 2 * 1000 * 24 * 60 * 60) + " 00:00:00",
          this.timestampToTime(nowDate) + " 23:59:59",
        ];
        if (null != this.createTimes && this.createTimes.length > 0) {
          this.queryParams.createTimeStart = this.createTimes[0];
          this.queryParams.createTimesEnd = this.createTimes[1];
        }
        this.handleQuery()
      },
      //时间解析
      Time(now) {
        let year = new Date(now).getFullYear();
        let month = new Date(now).getMonth() + 1;
        let date = new Date(now).getDate();
        if (month < 10) month = "0" + month;
        if (date < 10) date = "0" + date;
        return year + "-" + month + "-" + date;
      },
      //获得某月的天数:
      getMonthDays: function(myMonth) {
        let monthStartDate = new Date(new Date().getFullYear(), myMonth, 1);
        let monthEndDate = new Date(new Date().getFullYear(), myMonth + 1, 1);
        let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
        return days;
      },
      //时间转换
      timestampToTime(time) {
        // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
        var date = new Date(time);
        let y = date.getFullYear();
        let MM = date.getMonth() + 1;
        MM = MM < 10 ? "0" + MM : MM;
        let d = date.getDate();
        d = d < 10 ? "0" + d : d;
        let h = date.getHours();
        h = h < 10 ? "0" + h : h;
        let m = date.getMinutes();
        m = m < 10 ? "0" + m : m;
        let s = date.getSeconds();
        s = s < 10 ? "0" + s : s;
        return y + "-" + MM + "-" + d;
      },
      nowDay(val) {
        this.isCustomerChooseTime = false;
        let nowDate = new Date().getTime();
        let y = new Date().getFullYear();
        if (val == 0) {
          this.createTimes = [
            this.timestampToTime(nowDate) + " 00:00:00",
            this.timestampToTime(nowDate) + " 23:59:59",
          ];
        } else if (val == 3) {
          this.createTimes = [
            this.timestampToTime(nowDate - 2 * 1000 * 24 * 60 * 60) + " 00:00:00",
            this.timestampToTime(nowDate) + " 23:59:59",
          ];
        } else if (val == 30) {
          let month = new Date().getMonth() + 1;
          month = month < 10 ? "0" + month : month;
          this.createTimes = [
            y + "-" + month + "-01 00:00:00",
            this.timestampToTime(nowDate) + " 23:59:59",
          ];
        } else if (val == 60) {
          let startTime = this.Time(
            new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1)
          );
          let endTime = this.Time(
            new Date(
              new Date().getFullYear(),
              new Date().getMonth() - 1,
              this.getMonthDays(new Date().getMonth() - 1)
            )
          );
          this.createTimes = [startTime + " 00:00:00", endTime + " 23:59:59"];
        } else if (val == 365) {
          this.createTimes = [
            y + "-01-01 00:00:00",
            this.timestampToTime(nowDate) + " 23:59:59",
          ];
        }
        this.queryParams.createTimeStart = this.createTimes[0]
        this.queryParams.createTimesEnd = this.createTimes[1]
        this.handleQuery();
      },
      changeChooseType(val) {
        if (val == "创建时间") {
          this.chooseType == "创建时间";
          this.queryParams.createTimeStart = this.createTimes[0];
          this.queryParams.createTimesEnd = this.createTimes[1];
          this.queryParams.invoiceTimeStart = "";
          this.queryParams.invoiceTimeEnd = "";
          this.handleQuery();
        }
      },
      //时间选中状态更改
      radioDateInit() {
        this.radioDate = "";
        this.isCustomerChooseTime = true;
        if (null != this.createTimes && this.createTimes.length > 0) {
          this.queryParams.createTimeStart = this.createTimes[0];
          this.queryParams.createTimesEnd = this.createTimes[1];
        }
        this.handleQuery();
      },

//在使用的时候,需要在查询列表的方法里赋值对应的参数,或者自己后端接口实体新增createTimeStart、createTimesEnd用于接收参数;
//我这里是使用map进行接收:
this.queryParams.params["createTimeStart"] = this.queryParams.createTimeStart
this.queryParams.params["createTimesEnd"] = this.queryParams.createTimesEnd
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 静态条件筛选和动态条件筛选是数据处理中常用的两种筛选方式。 静态条件筛选指在数据处理之前,根据预先设定的条件筛选出符合条件的数据,并进行处理。例如,在Excel中使用筛选功能筛选出满足特定条件的数据,然后对这些数据进行操作。 动态条件筛选则是在数据处理时根据实际情况动态设定筛选条件,只对符合当前条件的数据进行处理。例如,在SQL查询中使用WHERE子句动态筛选数据。 两种筛选方式各有优缺点,需要根据具体情况选择使用。静态条件筛选简单方便,适用于数据量不大、筛选条件固定的情况;动态条件筛选灵活性更高,适用于数据量大、筛选条件不固定的情况。 ### 回答2: 静态条件筛选和动态条件筛选是一种数据处理中常用的筛选方法。 静态条件筛选是指在筛选过程中使用的条件是固定的,并且对于整个数据集都是一样的。这种筛选方法适用于数据集相对较小且条件不经常改变的情况。在静态条件筛选中,我们可以使用各种条件进行筛选,例如等于、大于、小于、包含等等。通过设定适当的条件,可以筛选出符合条件的数据记录,从而达到数据过滤和筛选的目的。 动态条件筛选是指在筛选过程中使用的条件可以根据需求进行动态调整的方法。这种筛选方法适用于数据集较大或者条件变化频繁的情况。与静态条件筛选不同的是,动态条件筛选可以根据数据集特点和需求实时调整筛选条件。例如,我们可以根据某个字段的取值范围或者其他条件动态地设置筛选条件,从而对数据进行动态筛选和过滤。 无论是静态条件筛选还是动态条件筛选,其目的都是为了从大量的数据中筛选出符合需求的数据记录。静态条件筛选适用于条件固定且不经常改变的情况,而动态条件筛选则适用于条件变化频繁或者需要根据数据集动态调整条件的情况。通过合理运用这两种筛选方法,可以实现高效、准确地对数据进行筛选和过滤。 ### 回答3: 静态条件筛选和动态条件筛选是两种不同的筛选方法。 静态条件筛选是指在筛选的过程中,使用固定的条件对数据进行筛选。这些条件通常事先定义好,并不会随着筛选过程的进行而改变。例如,对某个商品列表进行静态条件筛选时,我们可以设定只显示价格低于100元的商品。无论何时筛选,只要满足这个条件的商品都会被显示出来。静态条件筛选可以快速地对数据进行筛选,并能够保证筛选结果的一致性。 动态条件筛选是指在筛选的过程中,根据实时的需求和情况来动态调整筛选条件。这种筛选方法可以根据不同的场景和需求,灵活地对数据进行筛选。例如,在一个电商平台上,用户可以根据不同的需求,动态设定筛选条件,比如按照价格从低到高进行排序、筛选出促销商品等。这种筛选方法可以提供更加个性化和灵活的筛选功能,能够满足用户不同的需求。 综上所述,静态条件筛选和动态条件筛选是两种不同的筛选方法。静态条件筛选使用固定的条件进行筛选筛选结果一致性好;而动态条件筛选根据实时需求和情况动态调整筛选条件,提供更加灵活和个性化的筛选功能。在实际应用中,我们可以根据具体情况选择适合的筛选方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还算善良_

如果对你的工作有所帮助,拜托啦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值