中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js怎么獲取vue ElementUI表格

發布時間:2022-02-08 09:15:03 來源:億速云 閱讀:238 作者:iii 欄目:開發技術

今天小編給大家分享一下js怎么獲取vue ElementUI表格的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    ElementUI 表格

    前置工作: 安裝好vue和elemetUI。如果是按需引入,請確保TableTableColumn模塊已經引入

    示例:一個基本的表格

    <template>
    <el-table
              :data="tableData"
              stripe="true"
              >
        <el-table-column
                         prop="name"
                         label="名稱">
        </el-table-column>
        <el-table-column
                         prop="todayBuy"
                         label="日購買">
        </el-table-column>
        <el-table-column
                         prop="monthBuy"
                         label="月購買">
        </el-table-column>
        <el-table-column
                         prop="totalBuy"
                         label="總共購買">
        </el-table-column>
    </el-table>
    </template>
    <script>
    export default {
        name:"home",
        data(){
            return {
                tableData: [
                {
                    name: 'oppo',
                    todayBuy: 500,
                    monthBuy: 3500,
                    totalBuy: 22000
                },
                {
                    name: 'vivo',
                    todayBuy: 300,
                    monthBuy: 2200,
                    totalBuy: 24000
                }// ...
                ]
            }
        }
    }
    </script>

    js怎么獲取vue ElementUI表格

    el-table的屬性

    屬性屬性值說明
    stripebool是否使用斑馬紋
    borderbool是否使用邊框
    height數值固定表頭。只要設置了屬性&#xff0c;就會自動固定表頭
    max-height數值位表格設置最大高度

    el-table-column的屬性

    屬性屬性值說明
    fixedtrue(默認;左)|left|right固定欄&#xff0c;滾動的時候會浮動起來&#xff0c;可以選擇浮在哪一邊



    如果我們希望通過行內的一些屬性來對行做不同的顯示,那么我們可以給el-table添加row-class-name屬性。

    row-class-name屬性值是一個回調函數

    // ...
    <script>
    export default {
      methods: {
          // 處理函數
        tableRowClassName({row, rowIndex}) {
          if (rowIndex === 1) {
            return 'warning-row';
          } else if (rowIndex === 3) {
            return 'success-row';
          }
          return '';
        }
     }
    }
    </script>
    <style>
    .el-table .warning-row {
      background: oldlace;
    }
    .el-table .success-row {
      background: #f0f9eb;
    }
    </style>

    多級表頭

    通過<el-column>嵌套實現多級表頭,數據更具prop進行遍歷,看如下案例

    <el-table
        :data="tableData"
        >
        <el-table-column
          prop="date"
          label="日期"
          width="150">
        </el-table-column>
        <el-table-column label="配送信息">
          <el-table-column
            prop="name"
            label="姓名"
            width="120">
          </el-table-column>
            <!-- 地址沒有家prop屬性,所以不會對數據流影響 -->
          <el-table-column label="地址">
            <el-table-column
              prop="province"
              label="省份"
              width="120">
            </el-table-column>
            <el-table-column
              prop="city"
              label="市區"
              width="120">
            </el-table-column>
            <el-table-column
              prop="address"
              label="地址"
              width="300">
            </el-table-column>
            <el-table-column
              prop="zip"
              label="郵編"
              width="120">
            </el-table-column>
          </el-table-column>
        </el-table-column>
      </el-table>

    效果如下

    js怎么獲取vue ElementUI表格

    獲取表格,重點說下!!!

    js中如何獲取表格?,通過給<el-table>添加ref屬性為表格做唯一標識

    <el-table highlight-current-row current-change="changerow" ref="signtable">
    </el-table>
    // ...
    <script>
    // ...
         methods: {
          setCurrent(row) {
              // 通過this.$refs.<表格ref值>
              // 設置表格的的二行為選中
            this.$refs.singleTable
          },
    // ...
    </script>

    單選

    只需要配置highlight-current-row屬性即可實現單選。之后由current-change事件來管理選中時觸發的事件,它會傳入currentRowoldCurrentRow。如果需要顯示索引,可以增加一列el-table-column,設置type屬性為index即可顯示從 1 開始的索引號

    <el-table highlight-urrent-row current-change="changerow">
        <el-column prop="name" label="姓名"></el-column>
        <el-column prop="address" label="地址"></el-column>
        <el-column prop="email" label="郵箱"></el-column>
    </el-table>
    <script>
    // ...
         methods: {
          setCurrent(row) {
              // 設置表格的的二行為選中
            this.$refs.singleTable.setCurrentRow(1);
          },
    // ...
    </script>

    多選

    手動添加一個<el-column>屬性,添加type="selection",會調價一行多選按鈕

    <template>
          <!-- 使用 selection-change監聽選項改變,傳入一個函數名 -->
      <el-table
        ref="multipleTable"
        :data="tableData"
        tooltip-effect="dark"
        
        @selection-change="handleSelectionChange">
          <!-- type="selection" 生成多選 -->
        <el-table-column
          type="selection"
          width="55">
        </el-table-column>
        <el-table-column
          label="日期"
          width="120">
          <template slot-scope="scope">{{ scope.row.date }}</template>
        </el-table-column>
        <el-table-column
          prop="name"
          label="姓名"
          width="120">
        </el-table-column>
        <el-table-column
          prop="address"
          label="地址"
          show-overflow-tooltip>
        </el-table-column>
      </el-table>
    </template>
    <script>
        // 選中某一行,清除選項
    </script>

    使用js選中

    <script>
        // this.$refs.<表單標識>.toggleRowSelection(row),row為tableData的一整行數據
        this.$refs.multipleTable.toggleRowSelection(row);
        // this.$refs.<表單標識>.clearSelection();全不選
    	this.$refs.multipleTable.clearSelection();
    </script>

    排序

    在表格中定義default-sort定義默認排序列和排序規則

    通過給列添加srtotable屬性賦予列排序功能

    <template>
    <!-- 在表格中設設置默認排序規則 -->
    	<el-table
    		:default-sort="{prop:'todayBuy',order:'descending'}">
            <el-table-column
                             prop="name"
                             label="名稱">
        	</el-table-column>
            <el-table-column
                             prop="todayBuy"
                             label="日購買">
    	    </el-table-column>
            <el-table-column
                             prop="monthBuy"
                             label="月購買">
        	</el-table-column>
            <!-- 在表格中添加srottable屬性,會添加字段排序功能 -->
            <el-table-column
                             srottable
                             prop="totalBuy"
                             label="總共購買"
                             >
        	</el-table-column>
        </el-table>
        </el-table>
    </template>

    篩選

    在列中定義:filters屬性,值為一個[{ text: '', value: '' }] 的選項數組,提供給用戶篩選。同時,指定處理的回調函數:filter-method,值為函數名。有三個參數,選中的值、遍歷時候的行、遍歷時候的列

    <template>
    <!-- ... 設置選項和處理函數-->
    	<el-table-column
                     :filters="[{text:'300',value:'300'},{text:'800',value:'800'}]"
                     :filter-method="handleFilter"
                     prop="monthBuy"
                     label="月購買">
        </el-table-column>
    <!-- ... -->
    </template>
    <script>
    handleFilter(val,row){
    	return row.todayBuy == val
    }
    </script>

    js怎么獲取vue ElementUI表格

    自定義列

    一般我們會添加一個操作列,如刪除和編輯。那么我們可以不指定prop屬性,然后為列添加其他內容如下案例。同時,我們可以通過列上定義slot-scope="scope",通過scope來獲取列和行。一下直接使用官網案例

    <template>
      <el-table
        :data="tableData"
        >
        <el-table-column
          label="日期"
          width="180">
            <!-- 定義slot-scope="scope"后就可在scope中獲取列和行數據了 -->
          <template slot-scope="scope">
            <i class="el-icon-time"></i>
            <span >{{ scope.row.date }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="姓名"
          width="180">
            <!-- 定義slot-scope="scope"后就可在scope中獲取列和行數據了 -->
          <template slot-scope="scope">
            <el-popover trigger="hover" placement="top">
              <p>姓名: {{ scope.row.name }}</p>
              <p>住址: {{ scope.row.address }}</p>
              <div slot="reference" class="name-wrapper">
                <el-tag size="medium">{{ scope.row.name }}</el-tag>
              </div>
            </el-popover>
          </template>
        </el-table-column>
        <el-table-column label="操作">
            <!-- 定義slot-scope="scope"后就可在scope中獲取列和行數據了 -->
          <template slot-scope="scope">
            <el-button
              size="mini"
              @click="handleEdit(scope.$index, scope.row)">編輯</el-button>
            <el-button
              size="mini"
              type="danger"
              @click="handleDelete(scope.$index, scope.row)">刪除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </template>
    <script>
      export default {
        data() {
          return {
            tableData: [{
              date: '2016-05-02',
              name: '王小虎',
              address: '上海市普陀區金沙江路 1518 弄'
            }, {
              date: '2016-05-04',
              name: '王小虎',
              address: '上海市普陀區金沙江路 1517 弄'
            }, {
              date: '2016-05-01',
              name: '王小虎',
              address: '上海市普陀區金沙江路 1519 弄'
            }, {
              date: '2016-05-03',
              name: '王小虎',
              address: '上海市普陀區金沙江路 1516 弄'
            }]
          }
        },
        methods: {
            // 按鈕的點擊函數
          handleEdit(index, row) {
            console.log(index, row);
          },
          handleDelete(index, row) {
            console.log(index, row);
          }
        }
      }
    </script>

    展開行

    知識多又雜,一點點積累著,因為需求也是五花八門,用得上的。

    在列(el-column)中添加屬性 type="expand"就可設置為展開行,展開的內容定義在列標簽內。屬性的獲取同樣是通過slot-scope="scope"詳情如下案例:

    <template>
    <el-table :data="tableData">
        <el-table-cloumn type="expand">
            <template slot-scope="scope">
    			<el-card>
                    <p>名稱:{{scope.row.name }}</p>
                    <p>地址:{{scope.row.address }}</p>
                 </el-card>
            </template>
        </el-table-cloumn>
    </el-table>
    </template>
    <script>
      export default {
        data() {
          return {
            tableData: [{
              id: '12987125',
              name: '好滋好味雞蛋仔',
              category: '江浙小吃、小吃零食',
              desc: '荷蘭優質淡奶,奶香濃而不膩',
              address: '上海市普陀區真北路',
              shop: '王小虎夫妻店',
              shopId: '10333'
            }, {
              id: '12987126',
              name: '好滋好味雞蛋仔',
              category: '江浙小吃、小吃零食',
              desc: '荷蘭優質淡奶,奶香濃而不膩',
              address: '上海市普陀區真北路',
              shop: '王小虎夫妻店',
              shopId: '10333'
            }]
          }
        }
      }
    </script>

    以上就是“js怎么獲取vue ElementUI表格”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    鄂尔多斯市| 乐安县| 松潘县| 陆河县| 岚皋县| 皋兰县| 民丰县| 阳江市| 桃源县| 辽中县| 万源市| 象山县| 阿图什市| 黄平县| 邓州市| 页游| 全南县| 昌吉市| 达拉特旗| 贡嘎县| 涿鹿县| 抚州市| 神农架林区| 常宁市| 上虞市| 乾安县| 太和县| 遂昌县| 陵水| 绥江县| 普安县| 天等县| 扬中市| 宁武县| 吕梁市| 花莲县| 中卫市| 金秀| 抚远县| 乐亭县| 泾阳县|