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

elementUi 中table表尾插入行的實例

 更新時間:2022年07月29日 11:07:32   作者:藍色的落葉  
這篇文章主要介紹了elementUi 中table表尾插入行的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

elementUi table表尾插入行

<template>
  <div>
    <el-table stripe class="jx-table" :data="tableData" border ref="table" style="width: 100%">
      <el-table-column prop="firstColumn" :label="firstColLabel" :resizable="false"></el-table-column>
      <el-table-column prop="date" label="時間" :resizable="false"></el-table-column>
      <el-table-column prop="name" label="姓名" :resizable="false"></el-table-column>
      <el-table-column prop="province" label="地點" :resizable="false"></el-table-column>
    </el-table>
  </div>
</template>
<script>
import { map } from "lodash";
export default {
  created() {
    this.init();
  },
  data() {
    return {
      fullTableData: [],
      firstColLabel: "",
      tableFoot: [],
      allDate: {
        TabData: {
          result: [
            {
              date: "2016-05-02",
              name: "王小虎",
              province: "上海",
              firstColumn: 1
            },
            {
              date: "2016-05-04",
              name: "王小虎",
              province: "上海",
             title: 12
            },
            {
              date: "2016-05-01",
              name: "王小虎",
              province: "上海",
              title: 123
            },
            {
              date: "2016-05-03",
              name: "王小虎",
              province: "上海",
              title: 124
            }
          ],
          avg: { date: "---", name: "--", province: "-" },
          count: { date: "_", name: "__", province: "___" }
        },
        csNick: "標題"
      }
    };
  },
  methods: {
    init() {
      const { result, avg, count } = this.allDate.TabData;
      this.fullTableData = map(result, (object, key) => {
        return {
          firstColumn: object.title,
          ...object
        };
      });
      count.firstColumn = "匯總";
      avg.firstColumn = "均值";
      this.tableFoot = [count, avg];
      this.firstColLabel = this.allDate.csNick;
    }
  },
  computed: {
    tableData() {
      const tbody = this.fullTableData;
      return tbody.length ? [...tbody, ...this.tableFoot] : [];
    }
  }
};
</script>
<style lang="scss" scoped>
</style>

效果圖如下:

element table 自定義表尾

簡單介紹下項目:后端管理系統(tǒng),頁面樣式用的是 element,數(shù)據(jù)綁定用的是 vue.js。

功能需求:需要添加繳藥記錄,這些記錄要顯示在一個 table 中,但是 table 末尾一行不做數(shù)據(jù)展示,只負責觸發(fā)數(shù)據(jù)新增的動作。

先看最終實現(xiàn)的效果

紅框處就是自定義的表尾,選擇藥品處的下拉框,每當選中一個藥品的時候,當前 table 就多出一行選中過的藥品信息。

實現(xiàn)過程

由于用到 element 的 table 標簽,所以 table 的渲染,取決于 data 屬性的值(tablelist),代碼如下

    
    <el-table  style="width: 1040px" :data="tablelist" border>
        <el-table-column  prop="drugName" label="藥品名稱" min-width="20%"> </el-table-column>
        <el-table-column prop="unit" label="用藥規(guī)格" min-width="20%"> </el-table-column>
        <el-table-column  prop="stock" label="庫存數(shù)量(本人)" min-width="20%"> </el-table-column>
        <el-table-column prop="number" label="繳存數(shù)量" min-width="20%"> </el-table-column>
    </el-table>

一開始的思路是,tablelist 中預制一條數(shù)據(jù),然后做狀態(tài)標識。當渲染 table 行的時候,根據(jù)狀態(tài)標識,判斷該行到底是添加上的數(shù)據(jù),還是要觸發(fā)添加操作的表尾。然后按照這個思路執(zhí)行的結(jié)果是:

然后反思,發(fā)現(xiàn)原因。每次添加,都往 tablelist 數(shù)組后面添加一個元素,導致本來應該是表尾的那一行,跑到了上面。那繼續(xù)解決問題,我想到了對 tablelist 排序,然后讓表尾那一行每次排在數(shù)組最后一個位置。雖然實現(xiàn)了,但是弊端也很大。

  • 每次排序都要涉及到數(shù)組遍歷頁面渲染,這些都是性能開銷。
  • 當我保存頁面的數(shù)據(jù)的時候,我還需要對 tablelist 的數(shù)據(jù)做篩選,剔除掉表尾那行數(shù)據(jù)。總而言之,邏輯很復雜,然后我就想出了另外一種方法。

先看代碼

    
    <el-table  style="width: 1040px" :data="tablelist.concat([{drugId:0}])" border>
        <el-table-column  prop="drugName" label="藥品名稱" min-width="20%"> </el-table-column>
        <el-table-column prop="unit" label="用藥規(guī)格" min-width="20%"> </el-table-column>
        <el-table-column  prop="stock" label="庫存數(shù)量(本人)" min-width="20%"> </el-table-column>
        <el-table-column prop="number" label="繳存數(shù)量" min-width="20%"> </el-table-column>
    </el-table>

首先,為了保證保存頁面數(shù)據(jù)的時候,處理邏輯簡單,只讓 tablelist 存儲需要提交到后臺的數(shù)據(jù)。那么 table 表格末尾那一行的數(shù)據(jù),怎么渲染上呢。在給 table 的 data 屬性賦值的時候,調(diào)用 tablelist 的 concat(),方法。給 tablelist 再添加一個數(shù)組,該數(shù)組只有一個元素,就是用來渲染表尾的元素。這樣就保證了提交到后臺數(shù)據(jù)準確性,table 行數(shù)據(jù)排列的準確性以及表尾行始終固定。

小結(jié)一下:其實解決的方法很簡單。第一,由于是表尾和其他行有區(qū)別,而且我們的業(yè)務(wù)邏輯是表尾數(shù)據(jù)不提交,所以想到兩部分數(shù)據(jù)要做數(shù)據(jù)隔離。第二,table 渲染的時候,又需要兩部分數(shù)據(jù)是一個整體,所以想到集合的相加。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實現(xiàn)自定義顏色選擇器

    vue實現(xiàn)自定義顏色選擇器

    這篇文章主要為大家詳細介紹了如何使用vue實現(xiàn)一個自定義顏色選擇器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • Vue實現(xiàn)圓環(huán)進度條的示例

    Vue實現(xiàn)圓環(huán)進度條的示例

    這篇文章主要介紹了Vue實現(xiàn)圓環(huán)進度條的示例,幫助大家更好的理解和使用前端框架進行開發(fā),感興趣的朋友可以了解下
    2021-02-02
  • vue3 onMounted異步函數(shù)同步請求async/await實現(xiàn)

    vue3 onMounted異步函數(shù)同步請求async/await實現(xiàn)

    這篇文章主要為大家介紹了vue3 onMounted初始化數(shù)據(jù)異步函數(shù)/同步請求async/await實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 淺談Vuejs Prop基本用法

    淺談Vuejs Prop基本用法

    本篇文章主要介紹了Vuejs Prop基本用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Vue.js實現(xiàn)價格計算器功能

    Vue.js實現(xiàn)價格計算器功能

    這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)價格計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Vue3新狀態(tài)管理工具實例詳解

    Vue3新狀態(tài)管理工具實例詳解

    Vue3公布曾經(jīng)有一段時間了,它采納了新的響應式零碎,而且構(gòu)建了一套全新的 Composition API,下面這篇文章主要給大家介紹了關(guān)于Vue3新狀態(tài)管理工具的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • vue實現(xiàn)倒計時功能

    vue實現(xiàn)倒計時功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)倒計時功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Vue3項目搭建的詳細過程記錄

    Vue3項目搭建的詳細過程記錄

    使用VUE3開發(fā)很久了,但一直沒進行總結(jié)和記錄,忙里偷閑整理搭建一套VUE3項目腳手架,下面這篇文章主要給大家介紹了關(guān)于Vue3項目搭建的詳細過程,需要的朋友可以參考下
    2022-10-10
  • vue-extend和vue-component注冊一個全局組件方式

    vue-extend和vue-component注冊一個全局組件方式

    這篇文章主要介紹了vue-extend和vue-component注冊一個全局組件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue中如何使用lodash的debounce防抖函數(shù)

    vue中如何使用lodash的debounce防抖函數(shù)

    防抖函數(shù) debounce 指的是某個函數(shù)在某段時間內(nèi),無論觸發(fā)了多少次回調(diào),都只執(zhí)行最后一次,在Vue中使用防抖函數(shù)可以避免在頻繁觸發(fā)的事件中重復執(zhí)行操作,這篇文章主要介紹了vue中使用lodash的debounce防抖函數(shù),需要的朋友可以參考下
    2024-01-01

最新評論

颍上县| 东辽县| 肇东市| 丹阳市| 车致| 古浪县| 富阳市| 灵台县| 嘉兴市| 肃北| 南宫市| 广昌县| 金昌市| 灵宝市| 冷水江市| 乌拉特中旗| 木兰县| 炉霍县| 清徐县| 德州市| 晴隆县| 平泉县| 安吉县| 辽阳市| 嘉鱼县| 双峰县| 延川县| 镇平县| 周口市| 沅江市| 江都市| 鸡西市| 佳木斯市| 陵水| 得荣县| 永泰县| 永昌县| 淮北市| 贺兰县| 页游| 蓝山县|