table.vue 4.78 KB
<template>
    <i-button @click="changeFilter">改变filter</i-button>
    <span v-if="currentRow !== null">Current Row: {{currentRow.name}}</span>
    <Switch size="small" @on-change="switchCellEllipsis"></Switch> Ellipsis
    <i-table
      border
      :columns="columns6"
      :data="data5"
      :highlight-row="true"
      @on-current-change="onCurrentChange"
      @on-dblclick="onDblclick">
    </i-table>
</template>
<script>
    export default {
        data () {
            return {
                columns6: [
                    {
                        type: 'selection',
                        width: 60,
                        align: 'center'
                    },
                    {
                        title: '日期',
                        key: 'date'
                    },
                    {
                        title: '姓名',
                        key: 'name'
                    },
                    {
                        title: '年龄',
                        key: 'age',
                        filters: [
                            {
                                label: '大于25岁',
                                value: 1
                            },
                            {
                                label: '小于25岁',
                                value: 2
                            }
                        ],
                        filterMultiple: false,
                        filterMethod (value, row) {
                            if (value === 1) {
                                return row.age > 25;
                            } else if (value === 2) {
                                return row.age < 25;
                            }
                        }
                    },
                    {
                        title: '地址',
                        key: 'address',
                        filters: [
                            {
                                label: '北京',
                                value: '北京'
                            },
                            {
                                label: '上海',
                                value: '上海'
                            },
                            {
                                label: '深圳',
                                value: '深圳'
                            }
                        ],
                        filterMethod (value, row) {
                            return row.address.indexOf(value) > -1;
                        }
                    },
                    {
                      title: '长文本',
                      key: 'longText',
                      ellipsis: false
                    }
                ],
                data5: [
                   {
                       name: '王小明',
                       age: 18,
                       address: '北京市朝阳区芍药居',
                       date: '2016-10-03',
                       longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                   },
                   {
                       name: '张小刚',
                       age: 25,
                       address: '北京市海淀区西二旗',
                       date: '2016-10-01',
                       longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                   },
                   {
                       name: '李小红',
                       age: 30,
                       address: '上海市浦东新区世纪大道',
                       date: '2016-10-02',
                       longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                   },
                   {
                       name: '周小伟',
                       age: 26,
                       address: '深圳市南山区深南大道',
                       date: '2016-10-04',
                       longText: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                   }
                ],
                currentRow: null
            }
        },
        methods: {
            changeFilter () {
                this.columns6[2].filters = [
                    {
                        label: '小于25岁',
                        value: 2
                    }
                ]
            },
            switchCellEllipsis (status) {
                this.columns6[5].ellipsis = status
            },
            onClick (data) {
                window.alert('Click ' + data.name)
            },
            onCurrentChange (data) {
                this.currentRow = data
            },
            onDblclick (data) {
                window.alert('Double Click ' + data.name)
            }
        }
    }
</script>