• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    element-ui怎樣實現復用Table的組件

    來源:懂視網 責編:小采 時間:2020-11-27 19:54:55
    文檔

    element-ui怎樣實現復用Table的組件

    element-ui怎樣實現復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現復用Table的組件,element-ui實現復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改
    推薦度:
    導讀element-ui怎樣實現復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現復用Table的組件,element-ui實現復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改

    這次給大家?guī)韊lement-ui怎樣實現復用Table的組件,element-ui實現復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

    餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改成了另一種方式(我不會告訴你其實本質沒變)。

    項目中表格較多,所以復用性最重要

    步驟一

    先來個基本的表格展示

    官例的tableData

    tableData: [{
     date: '2016-05-02',
     name: '王小虎',
     address: '上海市普陀區(qū)金沙江路 1518 弄'
    }, {
     date: '2016-05-04',
     name: '王小虎',
     address: '上海市普陀區(qū)金沙江路 1517 弄'
    }, {
     date: '2016-05-01',
     name: '王小虎',
     address: '上海市普陀區(qū)金沙江路 1519 弄'
    }, {
     date: '2016-05-03',
     name: '王小虎',
     address: '上海市普陀區(qū)金沙江路 1516 弄'
    }]

    table.vue

    <template>
     <el-table :data="tableData" border>
     <el-table-column prop="date" label="日期"></el-table-column>
     <el-table-column prop="name" label="姓名"></el-table-column>
     <el-table-column prop="address" label="地址"></el-table-column>
     </el-table>
    </template>

    步驟二

    簡化一下表格:

    //table.vue
    <template>
     <el-table :data="tableData" border>
     <el-table-column v-for="(item,key) in tableKey" 
     :key="key"
     :prop="item.value"
     :label="item.name"></el-table-column>
     </el-table>
    </template>
    <script>
    export default{
     name: 'table',
     data(){
     return{
     tableData:[...],
     tableKey: [{
     name: 'date',
     value: '日期'
     },{
     name: '姓名',
     value: 'name'
     },{
     name: '地址',
     value: 'address'
     }]
     }
     }
    }
    </script>

    步驟三

    復用table.vue就是————給它數據的同時告訴它我的字段名唄

    新建一個父組件sl_table.vue

    //sl_table.vue
    <template>
     <sl-table :tableData="tableData" :tableKey="tableKey"></sl-table>
    </template>
    <script>
    import Table from '@/components/table'
    export default{
     name: 'sl-table',
     data(){
     return {
     tableData: [...]
     tableKey: [{
     name: 'date',
     value: '日期'
     },{
     name: '姓名',
     value: 'name'
     },{
     name: '地址',
     value: 'address'
     }]
     }
     },
     components: {
     'sl-table': Table
     }
    }
    </script>

    table.vue就更簡單了

    //table.vue
    <template>
     <el-table :data="tableData" border>
     <el-table-column v-for="(item,key) in tableKey" 
     :key="key"
     :prop="item.value"
     :label="item.name"></el-table-column>
     </el-table>
    </template>
    <script>
    export default{
     name: 'table',
     data(){
     return{
     
     }
     },
     props:['tableData','tableKey'],
    }
    </script>

    步驟四

    可以根據需求修改table的形式

    列寬度

    這個較為簡單,可以直接加個屬性

    //sl_table.vue
    ...
     data(){
     return {
     tableData: [...]
     tableKey: [{
     name: 'date',
     value: '日期',
     width: 80
     },{
     name: '姓名',
     value: 'name',
     width: 80
     },{
     name: '地址',
     value: 'address'
     }]
     }
     },
    ...

    table.vue

    //table.vue
    ...
    <el-table-column v-for="(item,key) in tableKey" 
    :key="key"
    :prop="item.value"
    :label="item.name"
    :width="item.width"></el-table-column>
    ...

    自定義模板列

    如果我們需要告訴組件哪個是自定義的列,所以添加一個屬性operate

    table.vue

    <el-table-column v-for="(item,key) in tableKey" 
    v-if="!item.operate"
    :key="key"
    :prop="item.value"
    :label="item.name"
    :width="item.width"></el-table-column>
    <!-- 自定義 -->
    <el-table-column v-else>
     <template scope="scope">
     <slot :name="item.value" :$index="scope.$index" :row="scope.row"></slot>
     </template>
    </el-table-column>
    //sl_table.vue
    <sl-table :tableData="tableData" :tableKey="tableKey">
     <template slot="date" scope="scope">
     <span>{{ scope.row.date | DateFilter }}</span>
     </template>
    </sl-table>
    ...
     data(){
     return {
     tableData: [...]
     tableKey: [{
     name: 'date',
     value: '日期',
     operate: true
     },{
     name: '姓名',
     value: 'name',
     operate: false
     },{
     name: '地址',
     value: 'address',
     operate: false
     }]
     }
     },
     filters: {
     DateFilter(){...}
     }
    ...

    表格展開行

    類似寬度,只要sl_table.vue傳入一個isExpand的屬性。這里加個每次只能展開一行的效果:

    //sl_table.vue
    <sl-table :tableData="tableData" :tableKey="tableKey" :isExpand="true" :isExpandOnly="true">
     <template slot="expand" scope="scope">
     {{...expand something}}
     </template>
     ...
    </sl-table>

    table.vue

    //table.vue
    <el-table :data="tableData" border @expand="handleExpand" ref="raw_table">
     <el-table-column v-if="isExpand" type="expand">
     <template scope="scope">
     <slot name="expand" :$index="scope.$index" :row="scope.row"></slot>
     </template>
     </el-table-column>
    </el-table>
    ...
    props: ['tableData','tableKey','isExpand','isExpandOnly'],
    methods: {
     handleExpand(row,is_expand){
     if(this.isExpand && this.isExpandOnly){
     this.$refs.raw_table.store.states.expandRows = expanded ? [row] : [] 
     }
     }
    }

    其他的(排序、多選)操作也是類似添加。。多不贅述。

    相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

    推薦閱讀:

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    element-ui怎樣實現復用Table的組件

    element-ui怎樣實現復用Table的組件:這次給大家?guī)韊lement-ui怎樣實現復用Table的組件,element-ui實現復用Table組件的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。餓了么的table組件功能很強大,對于項目中的各種表格基本夠用,但是……個人對于它以列為單位的操作不習慣 =。=所以改
    推薦度:
    標簽: 實現 組件 ui
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品无码久久久影院相关影片| 国产l精品国产亚洲区在线观看| 久久久久成人精品无码中文字幕| 国产精品福利在线观看免费不卡 | 欧美精品高清在线xxxx| 国产AV国片精品有毛| 日韩精品久久久久久免费| 久久性精品| 国产三级精品三级在线观看| 久久99精品国产99久久6男男| 国产精品色内内在线播放| 欧美韩国精品另类综合| 亚洲精品无码久久久久去q| 精品多毛少妇人妻AV免费久久| 国产精品久久久久久影院| 无码精品一区二区三区在线| 香蕉依依精品视频在线播放 | 久久精品国内一区二区三区| 国产精品国产亚洲精品看不卡| 日韩一区精品视频一区二区| 亚州日韩精品专区久久久| 久久精品亚洲欧美日韩久久| 国产精品偷窥熟女精品视频| 青青青国产依人精品视频| 国产一精品一av一免费爽爽| 国产精品黄网站| 九九精品成人免费国产片| 久久精品国产秦先生| 亚洲午夜久久久精品影院| 欧洲精品视频在线观看| 911亚洲精品国内自产| 欧美日激情日韩精品| 国产999精品久久久久久| 国产精品偷伦视频免费观看了 | 四虎影视永久在线精品| 欧美精品整片300页| 欧美精品福利在线视频| 综合国产精品第一页| 久久久久成人精品无码中文字幕| 精品麻豆丝袜高跟鞋AV| 成人国产精品免费视频|