最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中el-table兩個(gè)表尾合計(jì)行聯(lián)動(dòng)同步滾動(dòng)條實(shí)例代碼

 更新時(shí)間:2022年05月12日 09:53:51   作者:水冗水孚  
項(xiàng)目開(kāi)發(fā)中遇到一個(gè)比較兩個(gè)form差異的需求,但當(dāng)item過(guò)多就需要滾動(dòng)條,下面這篇文章主要給大家介紹了關(guān)于vue中el-table兩個(gè)表尾合計(jì)行聯(lián)動(dòng)同步滾動(dòng)條的相關(guān)資料,需要的朋友可以參考下

問(wèn)題描述

最近產(chǎn)品提出一個(gè)需求,說(shuō)是做表格呈現(xiàn)統(tǒng)計(jì)數(shù)據(jù),不過(guò)數(shù)據(jù)源是來(lái)自兩個(gè)地方的,所以需要做兩個(gè)表格去呈現(xiàn)數(shù)據(jù),同時(shí)在表格最后統(tǒng)計(jì)數(shù)據(jù)。

效果圖

我們先看一下效果圖

思路

獲取對(duì)應(yīng)的兩個(gè)表格設(shè)置滾動(dòng)條的dom,并通過(guò)Element.scrollLeft去設(shè)置滾動(dòng)的距離

官方文檔:developer.mozilla.org/zh-CN/docs/…

滾動(dòng)容器(審查元素即可得知):

完整代碼

自己演示的話,直接復(fù)制粘貼即可,代碼中包含注釋

<template>
  <div class="kkk">
    <div class="myWrap">
      <el-table
        ref="one"
        :data="tableBody"
        border
        :header-cell-style="{
          background: '#FAFAFA',
          color: '#333333',
          fontWeight: 'bold',
          fontSize: '14px',
        }"
        show-summary
      >
        <el-table-column type="index" label="序號(hào)" width="60">
        </el-table-column>
        <el-table-column
          prop="bookType"
          label="人物隸屬"
          width="100"
        ></el-table-column>
        <el-table-column prop="name" label="姓名" width="120"></el-table-column>
        <el-table-column prop="zhifubao" label="支付寶" width="160">
        </el-table-column>
        <el-table-column prop="weixin" label="微信" width="160">
        </el-table-column>
        <el-table-column prop="jingdong" label="京東" width="160">
        </el-table-column>
        <el-table-column prop="yunshanfu" label="云閃付" width="160">
        </el-table-column>
        <el-table-column prop="suning" label="蘇寧" width="160">
        </el-table-column>
        <el-table-column prop="lakala" label="拉卡拉" width="160">
        </el-table-column>
      </el-table>
      <el-table
        ref="two"
        :data="tableBody2"
        border
        show-summary
        :show-header="false"
      >
        <el-table-column type="index" label="序號(hào)" width="60">
        </el-table-column>
        <el-table-column
          prop="bookType"
          label="業(yè)務(wù)類型"
          width="100"
        ></el-table-column>
        <el-table-column prop="name" label="姓名" width="120"></el-table-column>
        <el-table-column prop="zhifubao" label="支付寶" width="160">
        </el-table-column>
        <el-table-column prop="weixin" label="微信" width="160">
        </el-table-column>
        <el-table-column prop="jingdong" label="京東" width="160">
        </el-table-column>
        <el-table-column prop="yunshanfu" label="云閃付" width="160">
        </el-table-column>
        <el-table-column prop="suning" label="蘇寧" width="160">
        </el-table-column>
        <el-table-column prop="lakala" label="拉卡拉" width="160">
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>
<script>
// cnpm i lodash --save
import _ from "lodash";
export default {
  data() {
    return {
      tableBody: [
        {
          bookType: "西游記",
          name: "孫悟空",
          zhifubao: 1,
          weixin: 2,
          jingdong: 3,
          yunshanfu: 4,
          suning: 5,
          lakala: 6,
        },
        {
          bookType: "西游記",
          name: "豬八戒",
          zhifubao: 6,
          weixin: 5,
          jingdong: 4,
          yunshanfu: 3,
          suning: 2,
          lakala: 1,
        },
      ],
      tableBody2: [
        {
          bookType: "三國(guó)演義",
          name: "劉備",
          zhifubao: 2,
          weixin: 2,
          jingdong: 2,
          yunshanfu: 2,
          suning: 2,
          lakala: 2,
        },
        {
          bookType: "三國(guó)演義",
          name: "豬八戒",
          zhifubao: 3,
          weixin: 3,
          jingdong: 3,
          yunshanfu: 3,
          suning: 3,
          lakala: 3,
        },
      ],
    };
  },
  mounted() {
    // 1. 初始化的時(shí)候,設(shè)置橫向滾動(dòng)規(guī)則
    this.setScrollRule();
  },
  methods: {
    setScrollRule() {
      let that = this; // 存一份this便于取用
      this.one = this.$refs.one.bodyWrapper; // 獲取帶有滾動(dòng)條的dom元素,注意餓了么UI的el-table的橫向滾動(dòng)條是設(shè)置在類名為
      this.two = this.$refs.two.bodyWrapper; // class="el-table__body-wrapper is-scrolling-left" 這個(gè)dom上。審查元素可知
      console.log("滾動(dòng)條dom容器", this.one);
      // 2. 綁定滾動(dòng)事件,順帶加上一個(gè)節(jié)流函數(shù)吧,也算是性能優(yōu)化
      this.one.addEventListener(
        "scroll",
        _.throttle(
          function () {
            that.fn1(); // 85毫秒觸發(fā)一次吧
          },
          85,
          {
            leading: true, //指定調(diào)用在節(jié)流開(kāi)始前
            trailing: false, //指定調(diào)用在節(jié)流結(jié)束后,
          }
        )
      );
      // 同上...
      this.two.addEventListener(
        "scroll",
        _.throttle(
          function () {
            that.fn2();
          },
          85,
          {
            leading: true,
            trailing: false,
          }
        )
      );
    },
    // 3. 通過(guò)Element.scrollLeft屬性 可以讀取或設(shè)置元素滾動(dòng)條到元素左邊的距離
    fn1() {
      console.log("滾動(dòng)條一 移動(dòng)多少?", this.one.scrollLeft);
      this.two.scrollLeft = this.one.scrollLeft;
      /**
       * 加了節(jié)流函數(shù)以后,就會(huì)出現(xiàn)當(dāng)我們滑動(dòng)過(guò)快的時(shí)候,遠(yuǎn)小于定義節(jié)流時(shí)間所觸發(fā)的間隔
       * 就會(huì)出現(xiàn)距離不準(zhǔn)確問(wèn)題,所以再加一個(gè)延時(shí)定時(shí)器重新更正(更新一下位置)
       * */
      setTimeout(() => {
        this.two.scrollLeft = this.one.scrollLeft; // api文檔詳情見(jiàn)mdn文檔:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollLeft
      }, 120);
    },
    // 同上...
    fn2() {
      console.log("滾動(dòng)條二 移動(dòng)多少?", this.two.scrollLeft);
      this.one.scrollLeft = this.two.scrollLeft;
      setTimeout(() => {
        this.one.scrollLeft = this.two.scrollLeft;
      }, 120);
    },
  },
  beforeDestroy() {
    // 移除事件監(jiān)聽(tīng)
    this.one.removeEventListener("scroll", this.fn1);
    this.one.removeEventListener("scroll", this.fn2);
  },
};
</script>

總結(jié)

到此這篇關(guān)于vue中el-table兩個(gè)表尾合計(jì)行聯(lián)動(dòng)同步滾動(dòng)條的文章就介紹到這了,更多相關(guān)vue el-table聯(lián)動(dòng)同步滾動(dòng)條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vuex之理解Mutations的用法實(shí)例

    Vuex之理解Mutations的用法實(shí)例

    本篇文章主要介紹了Vuex之理解Mutations的用法實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 詳解vue的數(shù)據(jù)劫持以及操作數(shù)組的坑

    詳解vue的數(shù)據(jù)劫持以及操作數(shù)組的坑

    這篇文章主要介紹了vue的數(shù)據(jù)劫持以及操作數(shù)組的坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue中nvm-windows的安裝與使用教程(親測(cè))

    Vue中nvm-windows的安裝與使用教程(親測(cè))

    nvm全英文也叫node.js version management,是一個(gè)nodejs的版本管理工具,這篇文章主要介紹了Vue中nvm-windows的安裝與使用,需要的朋友可以參考下
    2023-02-02
  • vue2.0項(xiàng)目實(shí)現(xiàn)路由跳轉(zhuǎn)的方法詳解

    vue2.0項(xiàng)目實(shí)現(xiàn)路由跳轉(zhuǎn)的方法詳解

    這篇文章主要介紹了vue2.0項(xiàng)目實(shí)現(xiàn)路由跳轉(zhuǎn)的詳細(xì)方法,非常不錯(cuò),具有一定的參考借鑒借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過(guò)程

    vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過(guò)程

    vue-cli 默認(rèn)只提供了 dev 和 prod 兩種環(huán)境。這篇文章主要介紹了vue-cli項(xiàng)目配置多環(huán)境的詳細(xì)操作過(guò)程,需要的朋友可以參考下
    2018-10-10
  • vue2中filter()的實(shí)現(xiàn)代碼

    vue2中filter()的實(shí)現(xiàn)代碼

    vue2.0里,不再有自帶的過(guò)濾器,需要自己定義過(guò)濾器。下面通過(guò)實(shí)例代碼給大家介紹vue2中filter()的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-07-07
  • 關(guān)于ElementPlus中的表單驗(yàn)證規(guī)則詳解

    關(guān)于ElementPlus中的表單驗(yàn)證規(guī)則詳解

    這篇文章主要介紹了關(guān)于ElementPlus中的表單驗(yàn)證,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Vue使用Proxy代理后仍無(wú)法生效的解決

    Vue使用Proxy代理后仍無(wú)法生效的解決

    這篇文章主要介紹了Vue使用Proxy代理后仍無(wú)法生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue3中watch監(jiān)聽(tīng)對(duì)象的屬性值(監(jiān)聽(tīng)源必須是一個(gè)getter函數(shù))

    Vue3中watch監(jiān)聽(tīng)對(duì)象的屬性值(監(jiān)聽(tīng)源必須是一個(gè)getter函數(shù))

    這篇文章主要介紹了Vue3中watch監(jiān)聽(tīng)對(duì)象的屬性值,監(jiān)聽(tīng)源必須是一個(gè)getter函數(shù),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Vue.js特性Scoped Slots的淺析

    Vue.js特性Scoped Slots的淺析

    這篇文章主要介紹了Vue.js特性Scoped Slots的淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02

最新評(píng)論

海宁市| 昌吉市| 广宁县| 九龙城区| 庆安县| 松滋市| 甘谷县| 务川| 昭觉县| 宿松县| 和林格尔县| 芦山县| 友谊县| 婺源县| 宁波市| 安多县| 安泽县| 宁陕县| 安丘市| 思南县| 灵宝市| 米泉市| 遵义县| 嘉禾县| 泸溪县| 广饶县| 囊谦县| 宜黄县| 兴国县| 青川县| 屏边| 菏泽市| 林周县| 徐水县| 博客| 福泉市| 友谊县| 兰西县| 涪陵区| 蓬溪县| 长寿区|