打杂的程序员 2019-07-25 09:58 采纳率: 60%
浏览 1707
已采纳

element ui datepicker 时间控件中切换时间问题。

因切换过快导致属性没来得及更新就点开了时间框,导致页面出现格式错误。

 <template>
  <el-date-picker
    v-model="date"
    :type="dateType"
    align="center"
    unlink-panels
    range-separator="~"
    start-placeholder="Start date"
    end-placeholder="End date"
    size="small"
    :picker-options="pickerOptionsType"
    class="date-class"
    value-format="yyyy-MM-dd"
    :format="format"
    prefix-icon="calendar-icon"
  >
  </el-date-picker>
</template>

其中日动态切换成月时

  computed: {     
    dateType: {
        get() {
          let timeType = this.$store.state.time;
          if ('day' == timeType || 'week' == timeType) {
            return 'daterange';
          } else if ('month' == timeType) {
            return 'monthrange';
          }
        }
      }
            }

本来的样式:
图片说明

如果切换过快,就点开了时间框,如果切换完过两秒就不回出现:
图片说明

怎么才能解决这个问题,只是格式出现问题,其他的数据都合适,timeType是全局变量,一直都有值的。

  • 写回答

4条回答 默认 最新

  • ft_christ 2019-08-12 17:07
    关注

    参考这个官方的回复https://github.com/ElemeFE/element/issues/4905
    两个datepicker 使用v-show判断 https://jsfiddle.net/hgxt68te/1

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • dabocaiqq 2019-07-25 10:00
    关注
    评论
  • KaSuo_ 2019-07-25 13:30
    关注

    试一下把切换放在this.$store.state.time的watch里呢,还有为什么time要放在store里呢,放data不可以吗

    评论
  • 狗蛋丶 2019-08-02 13:35
    关注

    这种情况一般用两个date-pick就行了,一个年一个月。
    浏览器不会在乎那点性能损耗的

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 哈夫曼编码译码器打印树形项目
  • ¥20 求完整顺利登陆QQ邮箱的python代码
  • ¥15 基带到底是什么?为什么手机厂和厂外完全两个概念
  • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?