<script>

export default {
  data() {
    return {
      items: [{
        text: '所有城市',
        children: [{
          text: '杭州',
          id: 1001
        }, {
          text: '温州',
          id: 1002
        }, {
          text: '海南',
          id: 1100
        }, {
          text: '宁波',
          id: 1003
        }, {
          text: '义乌',
          id: 1004
        }, {
          text: '无锡',
          id: 1011
        }, {
          text: '常州',
          id: 1012
        }, {
          text: '大连',
          id: 1031
        }, {
          text: '诸暨',
          id: 1005
        }]
      }, {
        text: '浙江',
        children: [{
          text: '杭州',
          id: 1001
        }, {
          text: '温州',
          id: 1002
        }, {
          text: '宁波',
          id: 1003
        }, {
          text: '义乌',
          id: 1004
        }]
      }, {
        text: '江苏',
        children: [{
          text: '无锡',
          id: 1011
        }, {
          text: '常州',
          id: 1012
        }]
      }],
      mainActiveIndex: 0,
      activeId: 1001
    };
  },
  methods: {
    onNavClick(index) {
      this.mainActiveIndex = index;
    },
    onItemClick(data) {
      console.log(data);
      this.activeId = data.id;
    }
  }
}
</script>

## TreeSelect 分类选择

### 使用指南
``` javascript
import { TreeSelect } from 'vant';

Vue.component(TreeSelect.name, TreeSelect);
```

### 代码演示

#### 基础用法

:::demo 基础用法
```html
<van-tree-select
  :items="items"
  :main-active-index="mainActiveIndex"
  :active-id="activeId"
  @navclick="onNavClick"
  @itemclick="onItemClick"
></van-tree-select>
```

```javascript
export default {
  data() {
    return {
      items: items,
      // 左侧高亮元素的index
      mainActiveIndex: 0,
      // 被选中元素的id
      activeId: 1001
    };
  },
  methods: {
    onNavClick(index) {
      this.mainActiveIndex = index;
    },
    onItemClick(data) {
      console.log(data);
      this.activeId = data.id;
    }
  }
}
```
:::

### API

#### 传入参数

| 参数       | 说明      | 类型       | 默认值       | 必须      |
|-----------|-----------|-----------|-------------|-------------|
| items | 分类显示所需的数据,具体数据结构可看 数据结构 |  Array | [] |  |
| mainActiveIndex | 左侧导航高亮的索引 |  Number | 0 |  |
| activeId | 右侧选择项,高亮的数据id |  Number | 0 |  |

#### 事件
| 事件名       | 说明      | 参数      |
|-----------|-----------|-----------|
| navclick | 左侧导航点击时,触发的事件 |  index:被点击的导航的索引 |
| itemclick | 右侧选择项被点击时,会触发的事件 | data: 该点击项的数据 |

### 数据格式
#### items 分类显示所需数据的数据结构
`items` 整体为一个数组,数组内包含一系列描述分类的 object。

每个分类里,text表示当前分类的名称。children 表示分类里的可选项,为数组结构,id被用来唯一标识每个选项
```javascript
[
  {
    // 导航名称
    text: '所有城市',
    // 该导航下所有的可选项
    children: [
      {
        // 可选项的名称
        text: '温州',
        // 可选项的id,高亮的时候是根据id是否和选中的id是否相同进行判断的
        id: 1002
      },
      {
        // 可选项的名称
        text: '杭州',
        // 可选项的id,高亮的时候是根据id是否和选中的id是否相同进行判断的
        id: 1001
      }
    ]
  }
]
```