element-ui的时间选择器中“此刻”按钮隐藏,以及部分样式修改

问题描述: 想隐藏时间选择器中的此刻按钮,在<style scoped></style>中使用/deep/::v-deep进行样式修改不生效

方法一: 是网上大部分的回答,在全局样式中修改,或者去掉scoped全局修改;项目中全局样式修改的方式,其实并不推荐!
.el-picker-panel__footer .el-button--text.el-picker-panel__link-btn { display: none; }

方法二:利用时间选择器的focus事件,在点击的时候去获取相应dom并设置样式

focus() {
	this.$nextTick(() => {
        document.getElementsByClassName('el-button--text')[0].setAttribute('style', 'display:none') // 隐藏此刻按钮
}

在这里插入图片描述
问题描述: 日期选择器中选择时间时,想只选择小时,但显示时又要显示“小时:分钟”,所以单纯的设置format是无法达到效果的

解决方法:format和value-format设置为"yyyy-MM-dd HH:mm",再利用在focus事件时操作dom去设置样式

	<el-date-picker
            v-model="refreshForm.date"
            popper-class="pick-time"
            format="yyyy-MM-dd HH:mm"
            value-format="yyyy-MM-dd HH:mm"
            type="datetime"
            :picker-options="{
              disabledDate: (time)=>{
                return showToday ? time.getTime() > Date.now() - 8.64e6 : time.getTime() + 1 * 24 * 3600 * 1000 > Date.now()
              },
              selectableRange: startTimeRange
            }"
            @focus="focus"
          >
          </el-date-picker>
focus(){
	// 设置时间选择器中样式
      this.$nextTick(() => {
        document.getElementsByClassName('el-time-spinner__wrapper')[0].setAttribute('style', 'width:100%') // 小时列居中
        document.getElementsByClassName('el-time-spinner__wrapper')[1].setAttribute('style', 'display:none') // 隐藏分列
      })
}
  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值