ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字

简介: 当我们使用 ElementUI 构建表单页面的时候,经常需要使用到复合型输入框,可前置或后置元素,一般为标签或按钮,作为该输入框的说明性文字。

当我们使用 ElementUI 构建表单页面的时候,经常需要使用到复合型输入框,可前置或后置元素,一般为标签或按钮,作为该输入框的说明性文字。


例如以下场景:

G1{Q4[WW04~CB7$ZKY]9OCL.png

Input 组件提供了 prefixsuffixprependappend 四种 Slot,这里我们可通过 slot 来指定在 input 中前置文字内容。

<el-input placeholder="" v-model="formData.deviceInfo"> 
  <template slot="prepend">设备名称</template>
</el-input>


但是 DatePicker 日期选择器组件并没有提供 Slot 来让我们添加同样的解释性文字,如果只是用 placeholder 说明,当选择日期后我们并不知道该区域是干什么的。


想达到 Input 组件同样的 UI 效果,好像只能自己想办法了。(有点疑惑,为什么日期组件官方没有提供前置和后置 Slot 插入内容的功能,这个场景还是很常见的)

从 UI 实现效果上可以看出,有点类似使用 buttondatepicker 组件组合而成,我们不妨先写出页面标签代码看看效果

<div class="timepick-width-prepend">
  <el-button type="default" class="prepend-text">预估量产时间</el-button>
  <el-date-picker v-model="formData.planProductTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
</div>


在没有添加额外的样式是下面这样,好像离我们想要的最终的效果还是很远。

T9QE08I)QG@Y65~AKMH[`EA.png


首先我们在外层 DIV 上使用 flex 布局让他们横向排列,垂直居中。让后给 button 添加上背景色。移除button 的 hover 效果。


至此大体上已经很接近我们想要的效果了,最后在细节上优化下,将他们重合处的圆角处理下,button 组件的右侧上下圆角值重置为0,datepicker 的左侧上下圆角值重置为0。

.timepick-width-prepend {
  display: flex;
  align-items: center;
  .prepend-text {
    background: #F5F7FA;
    color: #909399;
    border-right: none;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    cursor: default;
    :focus, :hover {
      border-color: #DCDFE6!important;
    }
  }
  .prepend-text:focus, .prepend-text:hover {
    border-color: #DCDFE6!important;
  }
  .el-input__inner {
    border-top-left-radius: 0!important;
    border-bottom-left-radius: 0!important;
  }
}

到此就实现了给 datepicker 组件增加前置说明文字。我们也可以将它封装成一个组件,供后面使用。



timfan
+关注
目录
打赏
0
0
0
0
2
分享
相关文章
Element el-date-picker 日期选择器详解
本文目录 1. 前言 2. 基本用法 3. 日期格式化 4. 选择其他日期单位 5. 选择多个日期 6. 带快捷选项 7. 禁用部分日期 8. 小结
5653 0
Element el-date-picker 日期选择器详解
vue3.0 vant popup渲染不出来的解决办法
vue3.0 vant popup渲染不出来的解决办法
201 0
Element el-row el-col 布局组件详解
本文目录 1. 背景 2. 分栏布局 3. 分栏间隔 4. 分栏偏移 4. 对齐方式 5. 响应式布局 6. 小结
6639 0
Element el-row el-col 布局组件详解
|
10月前
Vue2使用v-model封装ElementUI_DatePicker 日期选择器组件
本文介绍了如何在Vue2中使用v-model封装ElementUI的DatePicker日期选择器组件,并实现自定义属性和方法的结合使用,包括禁用日期、格式化日期等功能。
432 2
Vue2使用v-model封装ElementUI_DatePicker 日期选择器组件
|
11月前
|
【python】python指南(十三):FastAPI鉴权Authorization方法
【python】python指南(十三):FastAPI鉴权Authorization方法
532 0
Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用
Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用
616 1
数字孪生与能源管理:优化电网运营
数字孪生技术通过集成物联网、大数据、AI等先进科技,为实体对象创建虚拟模型,实现实时监控、故障预测与资源优化。在能源管理中,特别是电网运营方面,数字孪生能显著提升系统的稳定性、安全性和效率,推动智能电网建设,优化资源配置,加速应急响应,成为未来能源管理的关键技术。
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
Vue&Element开发框架中增加工作流处理,工作流的各个管理页面的界面处理
uniapp打包苹果应用到哪里去获取私钥证书和证书profile文件
ios的应用,分两种安装方式,一种是上架app store的安装方式,一种是上传到一些应用内测的平台,进行扫码安装。
326 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问