vue3应用elementPlus table并滚动显示问题

 更新时间:2022年12月29日 15:56:26   作者:左直拳  
这篇文章主要介绍了vue3应用elementPlus table并滚动显示问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue3 elementPlus table并滚动显示

效果类似

其实也没啥,代码部分,

1、首先使用了element plus的table

<template>
  <div>
    <el-table
      ref="table1"
      :data="state.data"
      height="250"
    >
      <el-table-column prop="station" label="站点" width="90" align="center" />
      <el-table-column prop="city" label="地市" width="55" align="center" />
      <el-table-column prop="date" label="日期" width="75" align="center" />
      <el-table-column prop="level" label="等级" width="70" align="center" />
    </el-table>
  </div>
</template>

2、设置定时器

<script setup>
import { reactive, onMounted, ref } from "vue";
import { getWaterData as getDataApi } from "@/modules/api/home";

const state = reactive({
  data: [],
});

const table1 = ref();

onMounted(() => {
  getDataApi().then((data) => {//获取数据
    state.data = data;
    scroll(table1.value.$refs.bodyWrapper);//设置滚动
  });
});
</script>

<script>
//scroll方法不用对外,所以放在<script>里了
const scroll = (tableBody) => {
  let isScroll = true;

  const dom1 = tableBody.getElementsByClassName("el-scrollbar__wrap")[0];

  //鼠标放上去,停止滚动;移开,继续滚动
  dom1.addEventListener("mouseover", () => {
    isScroll = false;
  });
  dom1.addEventListener("mouseout", () => {
    isScroll = true;
  });

  setInterval(() => {
    if (isScroll) {
      dom1.scrollTop += 1;
      if (dom1.clientHeight + dom1.scrollTop == dom1.scrollHeight) {
        dom1.scrollTop = 0;
      }
    }
  }, 100);
};
</script>

注意控制的dom是

table1.value.$refs.bodyWrapper.getElementsByClassName("el-scrollbar__wrap")[0]

这是vue3中应用element plus 的table,网上许多教程 说控制this.$refs.table.bodyWrapper的,不好使,没有作用。

vue3 elementPlus table对tooltip格式修改

描述:将返回来的数据拼在一起 用逗号隔开

解决方法

<el-table-column
    prop="airportInfos"
    label="管辖机场"
>
    <template #default="scope" v-if="false">
        {{
            void (scope.row.temp = scope.row.airportInfos
                .map(
                    (el) =>
                        el.ident +
                        (el["designator"] === "   "
                            ? ""
                            : "(" + el["designator"] + ")")
                )
                .join(","))
        }}
        <el-tooltip placement="top">
            <template #content>
                {{ scope.row.temp }}
            </template>
            <div class="ellipsis diyname-ellipsis-width">
                {{ scope.row.temp }}
            </div>
        </el-tooltip>
    </template>
</el-table-column>
<el-table-column
    prop="airportInfos"
    label="管辖机场"
    :formatter="formatter"
    show-overflow-tooltip
>
</el-table-column>

// 使用formatter
const formatter = (row, column, cellValue) => {
    return cellValue
        .map(
            (el) =>
                el.ident +
                (el["designator"] === "   " ? "" : "(" + el["designator"] + ")")
        )
        .join(",");
};

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue代理如何配置重写方法(pathRewrite与rewrite)

    vue代理如何配置重写方法(pathRewrite与rewrite)

    这篇文章主要介绍了vue代理如何配置重写方法(pathRewrite与rewrite),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue router错误跳转到首页("/")的问题及解决

    Vue router错误跳转到首页("/")的问题及解决

    这篇文章主要介绍了Vue router错误跳转到首页("/")的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue-cli-webpack搭建斗鱼直播步骤详解

    Vue-cli-webpack搭建斗鱼直播步骤详解

    斗鱼直播是比较火的直播视频,想必大家都看过吧。这篇文章主要介绍了Vue-cli-webpack搭建斗鱼直播步骤详解,需要的朋友可以参考下
    2017-11-11
  • vue 组件开发原理与实现方法详解

    vue 组件开发原理与实现方法详解

    这篇文章主要介绍了vue 组件开发原理与实现方法,结合实例形式详细分析了vue.js组件开发的原理与实现方法,需要的朋友可以参考下
    2019-11-11
  • 在vue中使用jointjs的方法

    在vue中使用jointjs的方法

    本篇文章主要介绍了在vue中使用jointjs的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • el-form-item prop属性动态绑定不生效问题及解决

    el-form-item prop属性动态绑定不生效问题及解决

    这篇文章主要介绍了el-form-item prop属性动态绑定不生效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue组件中使用iframe元素的示例代码

    vue组件中使用iframe元素的示例代码

    本篇文章主要介绍了vue组件中使用iframe元素的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 如何在vue中使用unocss以及基本使用方法

    如何在vue中使用unocss以及基本使用方法

    这篇文章主要给大家介绍了关于如何在vue中使用unocss以及基本使用方法的相关资料,unocss是一个即时的原子CSS引擎,它可以让你用简短的类名来控制元素的样式,而不需要写复杂的CSS代码,需要的朋友可以参考下
    2023-07-07
  • 在Vue3项目中使用VueCropper裁剪组件实现裁剪及预览效果

    在Vue3项目中使用VueCropper裁剪组件实现裁剪及预览效果

    这篇文章主要介绍了在Vue3项目中使用VueCropper裁剪组件(裁剪及预览效果),本文分步骤结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • vue将单页面改造成多页面应用的方法

    vue将单页面改造成多页面应用的方法

    最近领导交我一个项目是使用 vue-cli 搭建的单页面应用。下面小编通过本文给大家介绍vue将单页面改造成多页面应用的方法 ,感兴趣的朋友一起看看吧
    2018-11-11

最新评论