当前位置: 首页 > 知识库问答 >
问题:

前端 - 如何获取时间段内所有符合条件的数据?

胡俊弼
2023-10-11

现有两个查询条件,其中一个是日期时间。
ui

 <el-form :inline="true" :model="formInline">        <el-form-item label="工位号" style="font-weight: bold">          <el-select v-model="formInline.value" placeholder="请选择工位">            <el-option              v-for="item in options"              :key="item.value"              :label="item.label"              :value="item.value"            >            </el-option>          </el-select>        </el-form-item>        <el-form-item label="起始时间-截止时间" style="font-weight: bold">          <el-date-picker            v-model="formInline.value1"            type="datetimerange"            range-separator="-"            start-placeholder="开始日期"            end-placeholder="结束日期"          >          </el-date-picker>        </el-form-item>        <el-form-item>          <el-button type="primary" @click="search(formInline)">查询</el-button>        </el-form-item>      </el-form>
 // search点击事件    search (val) {      console.log('输入值', val)      const datetime01 = this.toDate(val.value1[0]).date + ' ' + this.toDate(val.value1[0]).time      const datetime02 = this.toDate(val.value1[1]).date + ' ' + this.toDate(val.value1[1]).time      console.log(datetime01, '处理好的语义化时间', datetime02)      const data = this.allData      console.log(data, '所有数据')      if (val.value === '') {        this.$message.error('请选择想要查询的工位!')        return      }      if (val.value1[0] === '') {        this.$message.error('请输入起始时间!')        return      }      if (val.value1[1] === '') {        this.$message.error('请输入截止时间!')        return      }      if (val.value && val.value1[0] && val.value1[1]) {        /**         *  循环遍历出 符合条件的数组数据         *  工位process_no 时间do_time         *  将日期内的所有数据匹配出来         *         * 先过滤出所有符合工站位的数据,再匹配出时间段内的数据         */        const match = data.filter(item => (item.process_no = val.value))        console.log(match, '匹配上的工位')      }      this.getAllData()    },

共有2个答案

雍阳
2023-10-11
//... 之前的代码 ...if (val.value && val.value1[0] && val.value1[1]) {    /**     *  循环遍历出 符合条件的数组数据     *  工位process_no 时间do_time     *  将日期内的所有数据匹配出来     *     * 先过滤出所有符合工站位的数据,再匹配出时间段内的数据     */    const startTime = new Date(datetime01).getTime();    const endTime = new Date(datetime02).getTime();    const match = data.filter(item =>         item.process_no === val.value &&        new Date(item.do_time).getTime() >= startTime &&         new Date(item.do_time).getTime() <= endTime    );    console.log(match, '匹配上的数据');}//... 之后的代码 ...
支铭晨
2023-10-11

从你的代码中看,你正在使用 Vue.js 和 Element UI 组件库来构建一个前端应用,这个应用有一个查询功能,可以按照工位和时间范围来查询数据。

在你的 search 方法中,你首先检查是否选择了工位和是否输入了起始和结束时间。如果没有,就显示错误信息并返回。然后,你定义了起始和结束时间的字符串,但似乎没有对它们做任何处理。

接着,你创建了一个 data 变量,看起来这是你所有数据的数组。然后你创建了一个新的数组 match 来存储符合条件的数据。

你的代码中,对于 filter 方法的逻辑是检查每个项目的 process_no 属性是否等于输入的工位号,但这里可能存在一个错误。filter 方法应该返回一个布尔值,如果为 true,则元素将包含在新的数组中。因此,你可能需要使用 === 来比较 process_no 和工位号,而不是使用 =

然后,你调用了 getAllData 方法,但未在给定的代码片段中定义这个方法,所以我无法评估它的功能。

下面是你可能需要的修改后的 search 方法:

search (val) {  console.log('输入值', val)  const datetime01 = this.toDate(val.value1[0]).date + ' ' + this.toDate(val.value1[0]).time  const datetime02 = this.toDate(val.value1[1]).date + ' ' + this.toDate(val.value1[1]).time  console.log(datetime01, '处理好的语义化时间', datetime02)  const data = this.allData  console.log(data, '所有数据')  if (val.value === '') {    this.$message.error('请选择想要查询的工位!')    return  }  if (val.value1[0] === '') {    this.$message.error('请输入起始时间!')    return  }  if (val.value1[1] === '') {    this.$message.error('请输入截止时间!')    return  }  if (val.value && val.value1[0] && val.value1[1]) {    /**     *  循环遍历出 符合条件的数组数据     *  工位process_no 时间do_time     *  将日期内的所有数据匹配出来     *     * 先过滤出所有符合工站位的数据,再匹配出时间段内的数据     */    const match = data.filter(item => item.process_no === val.value && item.do_time >= datetime01 && item.do_time <= datetime02)    console.log(match, '匹配上的工位')  }}

这个修改后的 search 方法会检查每个项目的 process_nodo_time 属性,确保它们分别等于输入的工位号和在输入的时间范围内。然后它会将符合这两个条件的所有项目添加到 match 数组中。

 类似资料:
  • 问题内容: 我正在寻找一种方法来获取字符串中的所有字母:前,但我不知道从哪里开始。我会使用正则表达式吗?如果可以,怎么办? 有人可以给我示范我可以做什么吗? 问题答案: 只需使用该功能。它返回一个列表,因此您可以保留第一个元素:

  • 当列名未知时,如何循环遍历整个数据框以删除包含特定字符串的单元格中的数据? 以下是我目前掌握的情况: 我的数据: 如果一个单元格包含一个字符串,例如“找到”,我如何删除它的全部内容?我想删除单元格中的所有内容(包括字符串之前和之后。)

  • 在包含所有数据的生产性系统上。 是否有一个(最好是cql)查询可以与给定的列族或de一起平稳运行,我们必须更改设计?

  • 本文向大家介绍mysql 获取规定时间段内的统计数据,包括了mysql 获取规定时间段内的统计数据的使用技巧和注意事项,需要的朋友参考一下 mysql 获取规定时间段内的统计数据 按年统计 按月统计 具体变换可以自己根据需求变更 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 问题内容: 我有一个字符数组c [] [],每个索引都有不同的映射。例如: 我需要以字符串形式返回此数组的所有可能字符组合。也就是说,对于上述字符数组,我应该返回:“ ag”,“ ah”,“ ai”,“ bg”,“ bh”,“ bi”,“ cg”,“ ch”,“ ci”等对于上面只有两件事的字符数组,这样做很容易,但是如果有更多的数组,那么我不知道该怎么办…这就是我要大家提供的帮助!:) 问题答案

  • 我想只从我的两个对象数组和中得到那些符合标准的子文档。即使我已经找到了这个stackoverflow答案#2(根据标准查找猫鼬子文档),它对我来说并不像期望的那样工作,或者我错过了一些东西。 我的文档如下所示: 它将在和中打印项目及其所有子文档。但是,我只想获取与给定上载id匹配的子文档。我做错了什么? 编辑:这个问题是指用猫鼬来解决它。我不能在Mongoose中使用这个问题的集合语句(只检索Mo