VUE +element ui 表格实现数据轮播滚动效果

vue项目中表格数据滚动 滚动到最后一条数据 重新调用接口

效果:
​​​​​​​

normal video

HTML代码

 <el-table
      height="86%"
      :data="orgNameData"
      :header-cell-style="{
        background: '#0655ff8a',
        textAlign: 'center',
        color:'#fff'
      }"
      highlight-current-row
      style="width: 98%"
      ref="sdangerTable"
      @cell-mouse-enter="startScroll"
      @cell-mouse-leave="stopScroll"
    >
      <el-table-column
        prop="orgName"
        min-width="70"
        :show-overflow-tooltip="true"
        label="姓名"
        align="center"
      />
      <el-table-column
        label="单位"
        min-width="68"
        prop="calledNum"
        align="center"
        :show-overflow-tooltip="true"
      />
    </el-table>

JS代码

props: {
    selectData: {
      type: Array,
      default: [],
    },
  },
  watch: {
    selectData: function (newVal, oldVal) {
      this.getBranchData();
    },
  },
  data() {
    return {
      branchData: [],
      interval: null,
      orgNameData: [],
      clientHeight:""
    };
  },
methods:{
    startScroll() {
      clearInterval(this.interval);
      this.interval = null;
    },

    stopScroll() {
      this.tableScroll();
    },

    //滚动方法 (主要代码) 
    tableScroll(){
        const table = this.$refs.sdangerTable
        const divData = table.bodyWrapper
        setInterval(() => {
          divData.scrollTop += 1
          if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
            if(table.tableData.length>5){
              divData.scrollTop = 0
              this.getBranchData();
            }
         }
        },1000)
      const that = this
      window.onresize = () => {
        return (() => {
           window.screenHeight = document.body.clientHeight
           that.clientHeight = window.screenHeight
        })()
      }
    },
    //接口
    getBranchData(){
      let query={}
      getBranchOfficeStatistics(query).then((res)=>{
        this.orgNameData = [] 
        res.data.map((item)=>{
          this.orgNameData.push(
            Object.assign({name:item.orgName,value:item.orgCode}),
          )
        })
        setTimeout(() => {
         this.$emit("changeTitle",this.orgNameData)
        }, 6000);
         
    },
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值