国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

elementUI 動(dòng)態(tài)生成幾行幾列的方法示例

2019-11-19 11:11:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

elementUI 動(dòng)態(tài)生成幾行幾列 table

現(xiàn)在碰到一個(gè)需求:就是根據(jù)用戶選擇的行列,來(lái)自動(dòng)生成相應(yīng)大小的 table,如下這個(gè)實(shí)現(xiàn)還不完善,因?yàn)閿?shù)據(jù)不對(duì),只是實(shí)現(xiàn)了動(dòng)態(tài)的效果,僅是提供一種實(shí)現(xiàn)思路吧,后續(xù)我會(huì)再想想看怎么實(shí)現(xiàn)為好,先記錄一下吧
直接看代碼吧

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>elementUI table 動(dòng)態(tài)生成列</title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <style type="text/css">  @import url("https://unpkg.com/element-ui/lib/theme-chalk/index.css"); </style></head><body><div id="app"> <el-form inline>  <!--先選擇 排數(shù)-->  <el-form-item label="請(qǐng)選擇排" style="margin-left: 50px;">   <el-select style="width: 100% ;" v-model="row1" placeholder="請(qǐng)選擇排" @change="row1Change">    <el-option v-for="item in floorNumList" :key="item.floorId"          :value="item.floorId"></el-option>   </el-select>  </el-form-item>  <!--再選擇 列數(shù)-->  <el-form-item label="請(qǐng)選擇列">   <el-select style="width: 100% ;" v-model="col1" placeholder="請(qǐng)選擇列" @change="col1Change">    <el-option v-for="item in floorNumList" :key="item.floorId"          :value="item.floorId"></el-option>   </el-select>  </el-form-item>  <el-table ref="multipleTable" :data="rowDataList1" style="width:80%; border: 2px solid red; max-height: 500px; margin-left: 30px;" highlight-current-row :cell-style="cellStyle">   <el-table-column fixed type="selection" align="center" width="50" label="列"></el-table-column><!--   <el-table-column type="index" align="center" width="50" label="索引"></el-table-column>-->   <el-table-column v-for="col in colDataList1" :prop="col.id" :label="col.id" align="center" >    <el-table-column prop="id" align="center" >     <template slot-scope="scope">      <el-button @click="handleClick(scope.row, col.id, scope.$index)" class="el-icon-cherry" v-bind:style="{ color: activeColor}">></el-button>     </template>    </el-table-column>   </el-table-column>  </el-table> </el-form> </div></div><script> let vm = new Vue({  el: '#app',  data(){   return{    floorNumList: [     {floorId: 1},     {floorId: 2},     {floorId: 3},     {floorId: 4},     {floorId: 5},     {floorId: 6},     {floorId: 7},     {floorId: 8},     {floorId: 9},     {floorId: 10}    ],    floorNum: '',    // 第1層 默認(rèn)選擇的排數(shù) 和 列數(shù)    row1: 1,    col1: 1,    // 第2層 默認(rèn)選擇的排數(shù) 和 列數(shù)    row2: 1,    col2: 1,    // 第3層 默認(rèn)選擇的排數(shù) 和 列數(shù)    row3: 1,    col3: 1,    // 第4層 默認(rèn)選擇的排數(shù) 和 列數(shù)    row4: 1,    col4: 1,    // 第5層 默認(rèn)選擇的排數(shù) 和 列數(shù)    row5: 1,    col5: 1,    activeColor: 'green',    colPos: '',    rowPos: '',    rowDataList1: [{ // 默認(rèn)給一個(gè)對(duì)象,即默認(rèn)狀態(tài)是 1行數(shù)據(jù)     id: Math.ceil(Math.random()*100)    }],    colDataList1: [     {id: '1'}    ],   }  },  methods:{   col1Change(){    // 每觸發(fā)一次,清空數(shù)據(jù)    this.colDataList1 = [{id: '1'}];    // 取得 選中的第一層的第一排的數(shù)值    let len = this.col1;    if(len > 1){     for (let i = 2; i <= len; i++){      this.colDataList1.push({id: i + ''});     }     return this.colDataList1;    }else{     return this.colDataList1;    }   },   row1Change(){    // 每觸發(fā)一次,清空數(shù)據(jù)    this.rowDataList1 = [{ id: Math.ceil(Math.random()*100)}];    let len = this.row1;    if (len > 1){     for (let i = 2; i <= len ; i++){      this.rowDataList1.push({id: Math.ceil(Math.random()*100) + i});     }     return this.rowDataList1;    }else {     return this.rowDataList1;    }   },   handleClick(row, col, index) {    // console.log(JSON.stringify(row));    // console.log(JSON.stringify(col));    // console.log("點(diǎn)擊的cell 行數(shù): " + JSON.stringify(index)); // index 是 行數(shù),0 表示第一行,從 0 開(kāi)始    // 一點(diǎn)擊獲取 行縱坐標(biāo)    this.colPos = col;    this.rowPos = index;   },   cellStyle({row, column, rowIndex, columnIndex}){    // console.log(JSON.stringify(row))    // console.log(JSON.stringify(column))    // console.log("要渲染的行數(shù): " + JSON.stringify(rowIndex))    // console.log(JSON.stringify(columnIndex))    if(rowIndex == 0 && columnIndex == 0){     return '';    }else {     if(rowIndex == this.rowPos && columnIndex == this.colPos){ //指定坐標(biāo)      return 'background: pink';     }else{      return '';     }    }   },  } });</script></body></html>

為了方便大家直接使用理解,我這里使用的腳本等都是在線鏈接,確保大家直接 down 下來(lái)就能運(yùn)行處效果的。

效果圖


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐至县| 辽宁省| 吐鲁番市| 中西区| 福安市| 绵竹市| 西青区| 太原市| 金阳县| 宁城县| 隆安县| 泰宁县| 曲松县| 山阴县| 苍南县| 江都市| 凤阳县| 和顺县| 西充县| 镇康县| 赤壁市| 大连市| 芦溪县| 定西市| 苏州市| 大英县| 青海省| 卓资县| 池州市| 锦屏县| 宜黄县| 平邑县| 简阳市| 罗源县| 怀来县| 盘山县| 大余县| 龙岩市| 江安县| 武冈市| 韩城市|