SOURCE

# BaseTable 表格

用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作

## 基础用法

:::demo

```vue
<template>
   <BaseTable :columns="fields" :data="tableData" show-header 
   :defaultSort="defaultSort"
   v-model:radio="radio"
   v-model:checkbox="checkbox"
   @sortChange="sortChange"
   @radioChange="radioChange"
   @selectionChange="selectionChange"
   @selectAll="selectAll" />
</template>

<script>
import { defineComponent,ref } from 'vue'
export default defineComponent({
  setup() {  
    const radio = ref('3')
    const checkbox = ref(['1','2','4'])
    const defaultSort = ref({ prop: 'address', order: 'descending' })
    const fields = ref([{
      type: 'checkbox',
      fixed: 'left',
      width: 40,
      disabled: (scope, column)=>{
        return scope.row.id==='2'
      }
    },{
      label: '列date列date列date列date列列date列date列date列date列列date列date列date列date列列date列date列date列date列',
      field: 'date',
      width: "80px",
      fixed: 'left'
    }, {
      label: '列Address',
      field: 'address2',
      children:[{
         label: '列name',
      field: 'name'
      },{
         label: '列列name列name列name列name列name列name列name列name列namename',
      field: 'name2',
      width: "320px",
      description: 'ddddddddddddddddddddddddaaaaaaa1111111111111111111',
      sortable: 'custom'
      }]
    }, {
      label: '列name',
      field: 'name'
    }, {
      label: '列address',
      field: 'address',
      sortable: 'custom' 
    }, {
      label: '列zip列zip列zip列zip列zip列zip列zip列zip列zip列zip列zip列zip列zip列zip',
      field: 'zip',
      width: "120px",
      fixed: 'right'
    }])  
    const tableData = ref([{
        id: '1',
        date: '列date列date列date列date列列date列date列date列date列列date列date列date列date列列date列date列date列date列',
        name: 'Tom',
        state: 'California',
        city: 'Los Angeles',
        zip: 'CA 90036',
      }, {
        id: '2',
        date: '2016-05-02',
        name: 'Tom',
        state: 'California',
        city: 'Los Angeles',
        address: 'No. 189, Grove St, Los Angeles',
        zip: 'CA 90036',
    }, {
        id: '3',
        date: '2016-05-02',
        name: 'Tom',
        state: 'California',
        city: 'Los Angeles',
        address: 'No. 189, Grove St, Los Angeles',
        zip: 'CA 90036',
    }])

    const sortChange = (e)=>{
      console.error(e)
    }


    const radioChange = (e)=>{
      console.error('radioChange',e)
    }

    const selectionChange = (e)=>{
      console.error('selectionChange',e)
    }

    const selectAll = (e)=>{
      console.error('selectAll',e)
    }

    return {radio,checkbox, defaultSort, fields,tableData, sortChange ,radioChange,selectionChange, selectAll}
  }
})
</script>
```

:::

## 组件 API

| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| :-- | :-- | :-- | :-- |:-- |
| xxx | xxx | string | -- | / |
| xxx | xxx | Array<[xxx](#xxx-属性)> | -- | [] |

## xxx 属性

| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
| :-- | :-- | :-- | :-- |:-- |
| xxx | xxx(必传项) | string | -- |  |

## 组件 插槽

| 属性名 | 说明 | 子标签 |
| :-- | :-- | :-- |
| default | 默认内容 | -- |
| item | 自定义子项内容 | -- |

## 组件 方法

## 组件 事件

## 组件 对外暴露的变量

## 组件 对外暴露的方法
console 命令行工具 X clear

                    
>
console