# Компонент BaseTreeSelector

Компонент, который представляет собой селект с опциями, где в качестве опций используется древовидная структура.
Запрос, выполняющийся для получения конкретного дерева вызывается диспечем из стора `'idm/tree/dispatchIncoming'`

### Импорт компонента:

```javascript
import BaseTreeSelector from '@components/common/base-tree-selector/index.vue';
```

### Описание props

1. `selected-label: string` **необязаельный** - лейбл (текстовое значение) выбранного элемента дерева
2. `selected-value: string | number` **обязательный** -  id выбранного элемента дерева
3. `label: string` **необязательный** - лейбл для поля
4. `tree-label: string` **обязательный**" - наименование ключа, по которому будет браться отображающийся лейбл для элементов дерева.
5. `current-request-id: string` **обязательный** - id параметр для запроса
6. `current-object-id: string` **необязательный** - id сущности ( для определения присутствия этой сущности в дереве )
7. `schemas: string[]` **обязательный** - массив названий схем для запроса
8. `schema: string` **обязательный** - значение корневой схемы для запроса
9. `depth: number` **необязательный** - значение глубины поиска для дерева ***(по умолчанию 1000)***

### Пример того, как выглядит запрос внутри компоненты:

```javascript
    this.$store
      .dispatch('idm/tree/dispatchIncoming', {
        id: this.currentRequestId,
        opts: {
          depth: this.depth,
          schemas: this.schemas,
        },
        schema: this.schema,
      })
```

### Шаблон

Пример добавление компонента на страницу

```vue
  <BaseTreeSelector
    :label="$t('statements.RoutingDialog.department')"
    tree-label="fullname"
    :current-request-id="selectedRegionId"
    :selected-value.sync="selectedDepartment"
    :selected-label.sync="selectedDepartmentLabel"
    @empty="isWarning = true"
    schema="Region"
    :schemas="['Organization']"
  />
```
