当前位置: 首页 > news >正文

封装实用的时间选择器组件

<template><!-- 使用该时间选择器组件,重置搜索表单的时候,注意得使用async await让重置表单操作完成后再发起请求 --><div class="dateTimePickerSelectWrap"><el-date-pickerv-model="arr":type="dateType"align="right"start-placeholder="开始日期"end-placeholder="结束日期":default-time="defaultTime"@change="handleChange":picker-options="pickerOptions"@blur='handleBlur':disabled="disabled"></el-date-picker></div>
</template><script>
export default {name: "DateTimePickerSelect",props: {startTime: {type: String,default: "",},endTime: {type: String,default: "",},dateType: {type: String,default: "datetimerange",},defaultTime: {type: Array,default: function () {return ["00:00:00", "23:59:59"];},},pickerOptions: {type: Object,default: function () {return {};},},disabled:{type:Boolean,default:false}},watch: {startTime: {immediate: true,handler(newVal, oldVal) {if (newVal) {this.startTimeAndEndTime();} else {this.arr = [];//需要更新外面传进来的值this.$emit("update:startTime", "");this.$emit("update:endTime", "");}},deep: true,},endTime: {immediate: true,handler(newVal, oldVal) {if (newVal) {this.startTimeAndEndTime();} else {this.arr = [];//需要更新外面传进来的值this.$emit("update:startTime", "");this.$emit("update:endTime", "");}},deep: true,},},data() {return {arr: [],};},methods: {startTimeAndEndTime() {if (this.startTime && this.endTime) {this.arr = [this.startTime, this.endTime];} else {this.$message.error("开始时间跟结束时间必须不为空");this.arr = [];this.$emit("update:startTime", "");this.$emit("update:endTime", "");}},handleChange(val) {if (!val) {// 置空了this.$emit("update:startTime", "");this.$emit("update:endTime", "");} else {this.$emit("update:startTime", this.parseTime(val[0]));this.$emit("update:endTime", this.parseTime(val[1]));}//原先的事件也返回出去,可能要根据事件做什么操作this.$emit('change',val)},handleBlur(){this.$emit('blur')}},
};
</script><style>
</style>

上面是components中封装的时间选择器组件

下面是使用方法

<div><dateTimePickerSelect:startTime.sync="queryParams.ticketPrintTimeBegin":endTime.sync="queryParams.ticketPrintTimeEnd"></dateTimePickerSelect>
</div>
<script>
import dateTimePickerSelect from "@/components/dateTimePickerSelect";
export default {components:{dateTimePickerSelect,}
}
</script>

相关文章:

  • YOLOv3超详细解读(三):源码解析:数据处理模块
  • Spring Boot 参数校验 Validation 终极指南
  • Open AI 使用篇
  • 从拥堵到畅行,智慧城市如何实现交通魔法?
  • 深入剖析Java中ThreadLocal原理
  • 可灵 2.0 可图 2.0 全解析:从 AI 图片到影视级视频的创作革命
  • zkmall模块商城:B2C 场景下 Vue3 前端性能优化的广度探索与实践
  • ThermoMPNN/ThermoMPNN-D 的安装及使用教程
  • Google-A2A协议全面解析:一文掌握Agent-to-Agent协议的核心与应用
  • 客户消失不配合,如何推动验收
  • 信号与系统期中复习(第一章)
  • 如何建立可复用的项目管理模板
  • 基于STM32与NB-IoT的智慧路灯远程监控系统
  • Missashe考研日记-day21
  • Daily morning reading 26
  • 贪心算法day9(合并区间)
  • Redisson分布式锁全攻略:用法、场景与要点
  • Linux 使用Nginx搭建简易网站模块
  • Sentinel源码—2.Context和处理链的初始化一
  • Android 开发 如何生成系统签名
  • 又一名被拐孩子找到!29年后,在警方帮助下云南男子寻子成功
  • 北美票房|《罪人》成首部观众评分为A级的恐怖片
  • “中国电三之都”江苏丰县成功举办第十五届电动车展览会
  • 张宝亮任山东临沂市委书记
  • 我国成功发射试验二十七号卫星01星~06星
  • 不做“正常”的囚徒