vue 做一个文本展示 点击文本弹出element ui的时间选择器 但不会出现element ui时间组件的那个输入框

我们先来创建一个vue2项目
引入element ui
然后 找到一个组件 这样写

<template>
  <div>
      <el-date-picker
          v-model="value"
          type="datetimerange"
          align="right"
          unlink-panels
          range-separator=""
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          class="pickerTime"
          ref = "datePicker"
      >
      </el-date-picker>
  </div>
</template>
<script>

export default {
  data() {
    return {
      value: ""
    };
  },
  components: {
    
  },
  methods: {
      
  }
};
</script>

这样 我们就写出了一个基本的element ui时间选择组件
但这显然不是我们要的效果
在这里插入图片描述
这里我们给时间控件了一个class pickerTime
用它来控制样式
我们css部分代码这样写一下

<style scoped>
.pickerTime{
    opacity: 0;
    position: absolute;
    left: 30px;
    top: 30px;
    width: 120px;
    height: 16px;
}
</style>

这样 我们的组件就看不到了 先别急
在这里插入图片描述
然后 我们改写组件代码如下

<template>
  <div>
      <el-date-picker
          v-model="value"
          type="datetimerange"
          align="right"
          unlink-panels
          range-separator=""
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          class="pickerTime"
          ref = "datePicker"
      >
      </el-date-picker>
      <el-button
          type = "text"
          @click = "selectionRange"
      >{{ value?value:'选择时间范围' }}</el-button>
  </div>
</template>
<script>

export default {
  data() {
    return {
      value: ""
    };
  },
  methods: {
      selectionRange(){
          this.$refs.datePicker.focus();
      },
  }
};
</script>
<style scoped>
.pickerTime{
    opacity: 0;
    position: absolute;
    left: 30px;
    top: 30px;
    width: 120px;
    height: 16px;
}
</style>

然后 我们再次将项目跑起来
点击按钮 下面的时间选择器就会出来
在这里插入图片描述
然后 我们选择一下
在这里插入图片描述
因为我们这里用了三元运算符
这个时间选择器绑定的是data中的value 而我们按钮上写的是
value?value:‘选择时间范围’
意思是 如果value有值 就展示value 如果没有 才展示 选择时间范围

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以在Vue组件中使用v-for指令循环渲染每一行的选择输入框。在每一行中,你可以使用v-model指令将选择的值绑定到Vue组件的数据属性上。然后,你可以使用v-if指令来控制输入框的禁用状态。 以下是一个示例Vue组件代码: ```html <template> <div> <div v-for="(row, index) in configRows" :key="index"> <el-select v-model="row.selected" @change="onSelectChange(index)"> <el-option v-for="(option, optionIndex) in configOptions" :key="optionIndex" :label="option" :value="option"></el-option> </el-select> <el-input :disabled="!row.selected" v-model="row.value"></el-input> </div> </div> </template> <script> export default { data() { return { configRows: [ { selected: '', value: '' }, { selected: '', value: '' }, { selected: '', value: '' }, ], configOptions: ['Option 1', 'Option 2', 'Option 3'], }; }, methods: { onSelectChange(index) { if (this.configRows[index].selected === '') { this.configRows[index].value = ''; } }, }, }; </script> ``` 在上面的示例代码中,`configRows`是一个包含三个对象的数组,每个对象分别表示每一行的选择输入框。`configOptions`是一个包含三个选项的数组,用于渲染选择的选项。 在`el-select`元素中,你可以使用`v-model`指令将选择的值绑定到对应的`configRows`数组对象上。在`el-input`元素中,你可以使用`v-model`指令将输入框的值绑定到对应的`configRows`数组对象上。在`el-input`元素中,你可以使用`v-if`指令来控制输入框的禁用状态。当选择的值为空时,输入框将被禁用。 在Vue组件的`onSelectChange`方法中,你可以在选择的值更改时检查选择的值是否为空。如果选择的值为空,则将对应的输入框的值设置为空。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值