zoukankan      html  css  js  c++  java
  • element ui 时间控件 多个日期

    前言:工作中用到 vue+element ui 的前端框架,需要使用时间控件来选择多个日期,已月日的形式,且有默认值,所以记录一下。转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9408107.html

    网站地址:我的个人vue+element ui demo网站 

    github地址:yuleGH github

     

    代码如下 

    <html>
    
    <head>
        <title>多日期选择</title>
        <!-- 引入样式 -->
        <link rel="stylesheet" href="../lib/elementui/theme-chalk/index.css" type="text/css">
    </head>
    <body>
    <div id="app">
      <p style="color: red;">时间控件年月,有默认值,设置时间控件不可输入</p>
        <span></span>
        <el-date-picker
          v-model="monthValue"
          type="month"
          :editable = "false"
          placeholder="选择月">
        </el-date-picker>
    
    <p style="color: red;">时间控件选择多个日期,有默认值,设置时间控件不可输入</p>
        <p></p>
        <span class="demonstration">多个日期</span>
        <el-date-picker
          ref="datesRef"
          type="dates"
          v-model="dateArr"
          :editable = "false"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
          placeholder="选择一个或多个日期">
        </el-date-picker>
    
        <el-button type="primary" @click="clickBtn" class="btn">打印选择的时间</el-button>
    
        <div style="margin-top: 20px">
          <span>打印区</span>
          <el-input type="textarea" v-model="printStr"></el-input>
        </div>
    </div>
    <!-- 引入组件库 -->
    <script type="text/javascript" src="../lib/vue.js"></script>
    <script type="text/javascript" src="../lib/elementui/index.js"></script>
    
    <script type="text/javascript">
        new Vue({
            el: "#app",
            data: {
                monthValue : "2018-06",
                dateArr: [],
                printStr: ""
            },
            methods: {
                clickBtn: function () {
                    this.printStr = this.dateArr ? this.dateArr.join() : "";
                }
            },
            mounted: function(){
              //为了解决bug,所以默认值放在了这里
              this.$nextTick(function(){
                this.dateArr = ["2018-08-03","2018-08-06"];
                this.$refs.datesRef.showPicker();
                this.$refs.datesRef.hidePicker();
              });
            }
        });
    </script>
    
    </body>
    
    </html>

    发现一个bug

      发现一个bug,在有默认值的情况下,第一次打开页面,点击时间控件,控件是不会选中的,如下图:

      

    解决方法:

      控件的默认值放在mounted里赋值,并执行以下时间控件的showPicker和hidePicker方法,代码如下:

            mounted: function(){
              //为了解决bug,所以默认值放在了这里
              this.$nextTick(function(){
                this.dateArr = ["2018-08-03","2018-08-06"];
                this.$refs.datesRef.showPicker();
                this.$refs.datesRef.hidePicker();
              });
            }

    转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9408107.html

  • 相关阅读:
    ADO.NET操作PostgreSQL:数据库操作类(未封装)
    ADO.NET操作SQL Server:数据库操作类(已封装)
    ADO.NET操作SQL Server:数据库操作类(未封装)
    h5微信支付
    css3的transform:tanslateZ没有效果
    判断页面是否被嵌入iframe里面
    vue项目的环境变量
    iOS下调用元素的focus方法,input元素不聚焦,键盘不弹起的问题
    关于common.js里面的module.exports与es6的export default的思考总结
    Vue2.4.0 新增的inheritAttrs,attrs
  • 原文地址:https://www.cnblogs.com/yuxiaole/p/9408107.html
Copyright © 2011-2022 走看看