Element中的日期时间选择器DateTimePicker和级联选择器Cascader

简述:在Element UI框架中,Cascader(级联选择器)和DateTimePicker(日期时间选择器)是两个非常实用且常用的组件,它们分别用于日期选择和多层级选择,提供了丰富的交互体验和便捷的数据输入方式。这里来简单记录一下



一. 日期时间选择器,DateTimePicker

javascript 复制代码
 <el-date-picker
              v-model="timeValue1"
              type="datetimerange"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              format="yyyy-MM-dd HH:mm:ss"   <!-- 显示格式 -->
              value-format="yyyy-MM-dd HH:mm:ss"  <!-- 绑定值的格式 -->
            >
</el-date-picker>




<!-- 日期时间选择器 -->
<el-date-picker
      v-model="timeValue1"                  绑定到 timeValue1 数据
      type="datetimerange"                  类型为日期时间范围
      range-separator="至"                  范围分隔符
      start-placeholder="开始日期"           开始日期占位符
      end-placeholder="结束日期"             结束日期占位符
      format="yyyy-MM-dd HH:mm:ss"          显示格式
      value-format="yyyy-MM-dd HH:mm:ss"    绑定值的格式 
></el-date-picker>

二. 级联选择器,Cascader

javascript 复制代码
<el-cascader
              :options="options"
              :props="props"
              collapse-tags
              clearable
              v-model="selectedOptions"
></el-cascader>




<!-- 级联选择器 -->
<el-cascader
      v-model="selectedOptions"    绑定到 selectedOptions 数据
      :options="options"           选择器选项
      :props="props"               选择器属性
      collapse-tags                收起标签
      clearable                    可清除图标显示
></el-cascader>

三. 参数属性

javascript 复制代码
// 日期时间选择参数
timeValue1: "",

// 级联选择器参数
options: [],
// ⭐注意这里的props需要额外配置,否则获取到的值为undefined
props: {
        multiple: true,
        value: "id",
        label: "label",
},
selectedOptions: [],




// 定义参数数据
data() {
    return {
      // 日期时间选择参数
      timeValue1: "", // 绑定日期时间选择器的值

      // 级联选择器参数
      options: [], // 选择器选项数据
      // ⭐注意这里的props需要额外配置,否则获取到的值为undefined
      props: {
        multiple: true, // 支持多选
        value: "id", // 选项的值字段
        label: "label", // 选项的标签字段
      },
      selectedOptions: [], // 绑定级联选择器的值,保存选择的事件类型id
    };
},

四. 触发事件

javascript 复制代码
choseSearch() {
      this.tableLoading = true;
      if (this.timeValue1.length === 0 || this.selectedOptions.length === 0) {
        console.error("请确保选择了日期范围和事件类型");
        return;
      }
      // console.log(this.timeValue1);
      // console.log(this.selectedOptions);

      const choseData = this.selectedOptions.map((cur) => {
        // console.log(cur);
        return cur[1];
      });
      // console.log(choseData);

      const ecentParams = {
        startTime: this.timeValue1[0],
        endTime: this.timeValue1[1],
        eventTypeIds: choseData,
      };
      // console.log(ecentParams);

      eventData(ecentParams, this.params).then((res) => {
        console.log(res);
        if (res.code === 200) {
        ......
        }
      });
},



// 点击事件
choseSearch() {
      this.tableLoading = true; // 设置表格加载状态

      // 检查是否选择了日期范围和事件类型
      if (this.timeValue1.length === 0 || this.selectedOptions.length === 0) {
        console.error("请确保选择了日期范围和事件类型");
        return; // 如果未选择,退出方法
      }

      // 处理选中的事件类型ID,将每个选中的值的第二个元素(事件类型ID)提取出来
      const choseData = this.selectedOptions.map((cur) => {
        return cur[1];
      });

      // 创建查询参数对象
      const ecentParams = {
        startTime: this.timeValue1[0], // 设置开始时间
        endTime: this.timeValue1[1], // 设置结束时间
        eventTypeIds: choseData, // 设置选中的事件类型ID
      };

      // 调用API方法,传递查询参数
      eventData(ecentParams, this.params).then((res) => {
        console.log(res); // 打印API响应结果
        if (res.code === 200) {
          // 处理成功响应
          ......
        }
      });
},
相关推荐
一 乐5 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
小御姐@stella6 小时前
Vue 之组件插槽Slot用法(组件间通信一种方式)
前端·javascript·vue.js
万叶学编程9 小时前
Day02-JavaScript-Vue
前端·javascript·vue.js
积水成江12 小时前
关于Generator,async 和 await的介绍
前端·javascript·vue.js
计算机学姐12 小时前
基于SpringBoot+Vue的高校运动会管理系统
java·vue.js·spring boot·后端·mysql·intellij-idea·mybatis
老华带你飞12 小时前
公寓管理系统|SprinBoot+vue夕阳红公寓管理系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·课程设计
qbbmnnnnnn13 小时前
【WebGis开发 - Cesium】如何确保Cesium场景加载完毕
前端·javascript·vue.js·gis·cesium·webgis·三维可视化开发
杨荧14 小时前
【JAVA开源】基于Vue和SpringBoot的水果购物网站
java·开发语言·vue.js·spring boot·spring cloud·开源
霸王蟹15 小时前
Vue3 项目中为啥不需要根标签了?
前端·javascript·vue.js·笔记·学习
老章学编程i16 小时前
Vue工程化开发
开发语言·前端·javascript·vue.js·前端框架