diff --git a/components.json b/components.json
index 07d33a97e..191b7bdc6 100644
--- a/components.json
+++ b/components.json
@@ -76,5 +76,6 @@
"calendar": "./packages/calendar/index.js",
"backtop": "./packages/backtop/index.js",
"infiniteScroll": "./packages/infiniteScroll/index.js",
- "page-header": "./packages/page-header/index.js"
+ "page-header": "./packages/page-header/index.js",
+ "cascader-panel": "./packages/cascader-panel/index.js"
}
diff --git a/examples/docs/en-US/cascader.md b/examples/docs/en-US/cascader.md
index dd0590c88..5374df8f1 100644
--- a/examples/docs/en-US/cascader.md
+++ b/examples/docs/en-US/cascader.md
@@ -6,30 +6,29 @@ If the options have a clear hierarchical structure, Cascader can be used to view
There are two ways to expand child option items.
-:::demo Assigning the `options` attribute to an array of options renders a Cascader. The `expand-trigger` attribute defines how child options are expanded. This example also demonstrates the `change` event, whose parameter is the value of Cascader, an array made up of the values of each selected level.
+:::demo Assigning the `options` attribute to an array of options renders a Cascader. The `props.expandTrigger` attribute defines how child options are expanded.
```html
Child options expand when clicked (default)
-
+ @change="handleChange">
+```
+:::
+
### Display only the last level
The input can display only the last level instead of all levels.
:::demo The `show-all-levels` attribute defines if all levels are displayed. If it is `false`, only the last level is displayed.
```html
-
+
+```
+:::
+
+### Multiple Selection
+
+Set `props.multiple = true` to use multiple selection.
+
+:::demo When using multiple selection, all selected tags will display by default, You can set `collapse-tags = true` to fold selected tags.
+```html
+
+
+
+```
+:::
+
+
+### Select any level of options
+
+In single selection, only the leaf nodes can be checked, and in multiple selection, check parent nodes will lead to leaf nodes be checked eventually. When enable this feature, it can make parent and child nodes unlinked and you can select any level of options.
+
+:::demo Set `props.checkStrictly = true` to make checked state of a node not affects its parent nodes and child nodes, and then you can select any level of options.
+```html
+
+ Select any level of options (Single selection)
+
+
+
+ Select any level of options (Multiple selection)
+
+
+
-```
-:::
-
-### Change on select
-
-Parent options can also be selected.
-
-:::demo By default only the options in the last level can be selected. By assigning `change-on-select` to `true`, options in parent levels can also be selected.
-```html
-
-
-```
-:::
-
-### Dynamically load child options
-
-Load child options when their parent option is clicked or hovered over.
-
-:::demo In this example, the options array does not have data of cities when initialized. With the `active-item-change` event, you can load the cities of a specific state dynamically. Besides, this example also demonstrates how `props` is used.
-```html
-
-
-
@@ -1157,24 +1250,22 @@ Load child options when their parent option is clicked or hovered over.
Search and select options with a keyword.
-:::demo Adding `filterable` to `el-cascader` enables filtering
+:::demo Adding `filterable` to `el-cascader` enables filtering. Cascader will match nodes whose label or parent's label (according to `show-all-levels`) includes input keyword. Of course, you can customize search logic by `filter-method` which accepts a function, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits.
```html
- Only options of the last level can be selected
+ Filterable (Single selection)
+ filterable>
- Options of all levels can be selected
+ Filterable (Multiple selection)
+ :props="{ multiple: true }"
+ filterable>
+```
+:::
+
+### Cascader panel
+
+`CascaderPanel` is the core component of `Cascader` which has various of features such as single selection, multiple selection, dynamic loading and so on.
+
+:::demo Just like `el-cascader`, you can set alternative options by `options`, and enable other features by `props`, see the API form below for details.
+```html
+
+
+
+```
+:::
+
+### Cascader Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+| size | size of input | string | medium / small / mini | — |
+| placeholder | placeholder of input | string | — | Select |
+| disabled | whether Cascader is disabled | boolean | — | false |
+| clearable | whether selected value can be cleared | boolean | — | false |
| show-all-levels | whether to display all levels of the selected value in the input | boolean | — | true |
-| filterable | whether the options can be searched | boolean | — | — |
+| collapse-tags | whether to collapse tags in multiple selection mode | boolean | - | false |
+| separator | option label separator | string | — | ' / ' |
+| filterable | whether the options can be searched | boolean | — | — |
+| filter-method | customize search logic, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits. | function(node, keyword) | - | - |
| debounce | debounce delay when typing filter keyword, in milliseconds | number | — | 300 |
-| change-on-select | whether selecting an option of any level is permitted | boolean | — | false |
-| size | size of Input | string | medium / small / mini | — |
| before-filter | hook function before filtering with the value to be filtered as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, filtering will be aborted | function(value) | — | — |
+| popper-class | custom class name for Cascader's dropdown | string | — | — |
-### props
-| Attribute | Description | Type | Accepted Values | Default |
-| --------- | ----------------- | ------ | ------ | ------ |
-| label | specify which key of option object is used as the option's label | string | — | — |
-| value | specify which key of option object is used as the option's value | string | — | — |
-| children | specify which key of option object is used as the option's child options | string | — | — |
-| disabled | specify which key of option object indicates if the option is disabled | string | — | — |
-
-### Events
+### Cascader Events
| Event Name | Description | Parameters |
|---------- |-------- |---------- |
-| change | triggers when the binding value changes | value |
-| active-item-change | triggers when active option of its parent changes, only works when `change-on-select` is `false` | an array of active options |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
| blur | triggers when Cascader blurs | (event: Event) |
| focus | triggers when Cascader focuses | (event: Event) |
| visible-change | triggers when the dropdown appears/disappears | true when it appears, and false otherwise |
+| remove-tag | triggers when remove tag in multiple selection mode | the value of the tag which is removed |
+
+### Cascader Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+| empty | content when there is no matched options. |
+
+### CascaderPanel Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+
+### CascaderPanel Events
+| Event Name | Description | Parameters |
+|---------- |-------- |---------- |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
+
+### CascaderPanel Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+
+### Props
+| Attribute | Description | Type | Accepted Values | Default |
+| -------- | ----------------- | ------ | ------ | ------ |
+| expandTrigger | trigger mode of expanding options | string | click / hover | 'click' |
+| multiple | whether multiple selection is enabled | boolean | - | false |
+| checkStrictly | whether checked state of a node not affects its parent and child nodes | boolean | - | false |
+| emitPath | when checked nodes change, whether to emit an array of node's path, if false, only emit the value of node. | boolean | - | true |
+| lazy | whether to dynamic load child nodes, use with `lazyload` attribute | boolean | - | false |
+| lazyLoad | method for loading child nodes data, only works when `lazy` is true | function(node, resolve) | - | - |
+| value | specify which key of node object is used as the node's value | string | — | 'value' |
+| label | specify which key of node object is used as the node's label | string | — | 'label' |
+| children | specify which key of node object is used as the node's children | string | — | 'children' |
+| disabled | specify which key of node object is used as the node's disabled | string | — | 'disabled' |
+| leaf | specify which key of node object is used as the node's leaf field | string | — | 'leaf' |
diff --git a/examples/docs/es/cascader.md b/examples/docs/es/cascader.md
index 55228cbd9..5374df8f1 100644
--- a/examples/docs/es/cascader.md
+++ b/examples/docs/es/cascader.md
@@ -1,36 +1,34 @@
## Cascader
-Si las opciones tienen una estructura jerárquica clara, Cascader puede utilizarse para visualizarlas y seleccionarlas.
+If the options have a clear hierarchical structure, Cascader can be used to view and select them.
-### Uso básico
+### Basic usage
-Existen dos maneras de expandir los elementos hijo de la opción.
-
-:::demo Al asignar al atributo `options` un array de opciones, se genera un Cascader. El atributo `expand-trigger` define cómo se expanden las opciones hijo. Este ejemplo también muestra el evento `change` , cuyo parámetro es el valor de Cascader, un array formado por los valores de cada nivel seleccionado.
+There are two ways to expand child option items.
+:::demo Assigning the `options` attribute to an array of options renders a Cascader. The `props.expandTrigger` attribute defines how child options are expanded.
```html
Child options expand when clicked (default)
-
+ @change="handleChange">
-```
-:::
-
-### Con valor por defecto
-
-:::demo El valor por defecto se puede definir con un array.
-```html
-
-
-```
-:::
-
-### Change on select
-
-También se pueden seleccionar las opciones del elemento padre.
-
-:::demo Por defecto sólo se pueden seleccionar las opciones del último nivel. Al asignar `change-on-select` a `true`, también se pueden seleccionar opciones en los niveles superiores.
-
-```html
-
-
-```
-:::
-
-### Carga dinamica de elementos hijos
-
-Se puede hacer una carga dinamica de elementos hijos cuando se hace clic en el elemento padre o se pasa el ratón sobre el.
-
-:::demo En este ejemplo, el array de opciones no tiene datos de ciudades cuando se inicializa. Con el evento `active-item-change`, puede cargar dinámicamente las ciudades de un estado específico. Además, este ejemplo también demuestra cómo se utilizan los`props`.
-
-```html
-
-
-
+```
+:::
+
+### Display only the last level
+
+The input can display only the last level instead of all levels.
+
+:::demo The `show-all-levels` attribute defines if all levels are displayed. If it is `false`, only the last level is displayed.
+```html
+
+
```
:::
-### Filtrable
+### Multiple Selection
-Buscar y seleccionar opciones con una palabra clave.
-
-:::demo Añadir `filterable` a `el-cascader` permite filtrar
+Set `props.multiple = true` to use multiple selection.
+:::demo When using multiple selection, all selected tags will display by default, You can set `collapse-tags = true` to fold selected tags.
```html
- Only options of the last level can be selected
+ Display all tags (default)
+ :props="props"
+ clearable>
- Options of all levels can be selected
+ Collapse tags
+ :props="props"
+ collapse-tags
+ clearable>
+
+
+
+```
+:::
+
+
+### Select any level of options
+
+In single selection, only the leaf nodes can be checked, and in multiple selection, check parent nodes will lead to leaf nodes be checked eventually. When enable this feature, it can make parent and child nodes unlinked and you can select any level of options.
+
+:::demo Set `props.checkStrictly = true` to make checked state of a node not affects its parent nodes and child nodes, and then you can select any level of options.
+```html
+
+ Select any level of options (Single selection)
+
+
+
+ Select any level of options (Multiple selection)
+
+```
+:::
+
+### Filterable
+
+Search and select options with a keyword.
+
+:::demo Adding `filterable` to `el-cascader` enables filtering. Cascader will match nodes whose label or parent's label (according to `show-all-levels`) includes input keyword. Of course, you can customize search logic by `filter-method` which accepts a function, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits.
+```html
+
+ Filterable (Single selection)
+
+
+
+ Filterable (Multiple selection)
+
+
+
+
+```
+:::
+
+### Custom option content
+
+You can customize the content of cascader node.
+
+:::demo You can customize the content of cascader node by `scoped slot`. You'll have access to `node` and `data` in the scope, standing for the Node object and node data of the current node respectively。
+```html
+
+
+ {{ data.label }}
+ ({{ data.children.length }})
+
+
+
+
+```
+:::
+
+### Cascader panel
+
+`CascaderPanel` is the core component of `Cascader` which has various of features such as single selection, multiple selection, dynamic loading and so on.
+
+:::demo Just like `el-cascader`, you can set alternative options by `options`, and enable other features by `props`, see the API form below for details.
+```html
+
+
+
+```
+:::
+
+### Cascader Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+| size | size of input | string | medium / small / mini | — |
+| placeholder | placeholder of input | string | — | Select |
+| disabled | whether Cascader is disabled | boolean | — | false |
+| clearable | whether selected value can be cleared | boolean | — | false |
+| show-all-levels | whether to display all levels of the selected value in the input | boolean | — | true |
+| collapse-tags | whether to collapse tags in multiple selection mode | boolean | - | false |
+| separator | option label separator | string | — | ' / ' |
+| filterable | whether the options can be searched | boolean | — | — |
+| filter-method | customize search logic, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits. | function(node, keyword) | - | - |
+| debounce | debounce delay when typing filter keyword, in milliseconds | number | — | 300 |
+| before-filter | hook function before filtering with the value to be filtered as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, filtering will be aborted | function(value) | — | — |
+| popper-class | custom class name for Cascader's dropdown | string | — | — |
+
+### Cascader Events
+| Event Name | Description | Parameters |
+|---------- |-------- |---------- |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
+| blur | triggers when Cascader blurs | (event: Event) |
+| focus | triggers when Cascader focuses | (event: Event) |
+| visible-change | triggers when the dropdown appears/disappears | true when it appears, and false otherwise |
+| remove-tag | triggers when remove tag in multiple selection mode | the value of the tag which is removed |
+
+### Cascader Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+| empty | content when there is no matched options. |
+
+### CascaderPanel Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+
+### CascaderPanel Events
+| Event Name | Description | Parameters |
+|---------- |-------- |---------- |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
+
+### CascaderPanel Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+
+### Props
+| Attribute | Description | Type | Accepted Values | Default |
+| -------- | ----------------- | ------ | ------ | ------ |
+| expandTrigger | trigger mode of expanding options | string | click / hover | 'click' |
+| multiple | whether multiple selection is enabled | boolean | - | false |
+| checkStrictly | whether checked state of a node not affects its parent and child nodes | boolean | - | false |
+| emitPath | when checked nodes change, whether to emit an array of node's path, if false, only emit the value of node. | boolean | - | true |
+| lazy | whether to dynamic load child nodes, use with `lazyload` attribute | boolean | - | false |
+| lazyLoad | method for loading child nodes data, only works when `lazy` is true | function(node, resolve) | - | - |
+| value | specify which key of node object is used as the node's value | string | — | 'value' |
+| label | specify which key of node object is used as the node's label | string | — | 'label' |
+| children | specify which key of node object is used as the node's children | string | — | 'children' |
+| disabled | specify which key of node object is used as the node's disabled | string | — | 'disabled' |
+| leaf | specify which key of node object is used as the node's leaf field | string | — | 'leaf' |
diff --git a/examples/docs/fr-FR/cascader.md b/examples/docs/fr-FR/cascader.md
index 9510f1b1e..5374df8f1 100644
--- a/examples/docs/fr-FR/cascader.md
+++ b/examples/docs/fr-FR/cascader.md
@@ -1,35 +1,34 @@
## Cascader
-Si les options ont une structure hiérarchique claire, un Cascader peut être utilisé pour les afficher et les selectionner.
+If the options have a clear hierarchical structure, Cascader can be used to view and select them.
-### Usage
+### Basic usage
-Il y a deux manières de dérouler la liste des options.
+There are two ways to expand child option items.
-:::demo Assigner un tableau à l'attribut `options` génère un Cascader. L'attribut `expand-trigger` détermine comment les options suivantes sont affichées. Cet exemple utilises aussi l'évènement `change`, qui a pour paramètre la valeur du Cascader, c'est à dire un tableau constitué de chaque niveau jusqu'à la valeur selectionnée, comme un chemin.
+:::demo Assigning the `options` attribute to an array of options renders a Cascader. The `props.expandTrigger` attribute defines how child options are expanded.
```html
- Les options se déroulent après un clic (défaut)
+ Child options expand when clicked (default)
-
+ @change="handleChange">
- Les options se déroulent au passage de la souris
+ Child options expand when hovered
-
+ :props="{ expandTrigger: 'hover' }"
+ @change="handleChange">
-```
-:::
-
-### Valeur par défaut
-
-:::demo La valeur par défaut peut être définit grâce à un tableau.
-```html
-
-
-```
-:::
-
-### Changement après sélection
-
-Les options parentes peuvent aussi être sélectionnées.
-
-:::demo Par défaut seules les options de dernier niveau peuvent être sélectionnées. En réglant `change-on-select` à `true`, les options parentes peuvent aussi être sélectionnées.
-```html
-
-
-```
-:::
-
-### Charger les options dynamiquement
-
-Il est possible de charger dynamiquement les options quand on clique ou passe la souris sur leurs parent.
-
-:::demo Dans cet exemple, les optionsn'ont pas de données de villes au moment de l'initialisation. Grâce à l'évènement `active-item-change` vous pouvez charger les villes de manière dynamique. De plus, cet exemple montre comment `props` peut être utilisé.
-```html
-
-
-
+```
+:::
+
+### Display only the last level
+
+The input can display only the last level instead of all levels.
+
+:::demo The `show-all-levels` attribute defines if all levels are displayed. If it is `false`, only the last level is displayed.
+```html
+
+
```
:::
-### Filtres
+### Multiple Selection
-Recherchez une option particulière en entrant des mots-clé.
+Set `props.multiple = true` to use multiple selection.
-:::demo Ajouter `filterable` à `el-cascader` active le filtrage.
+:::demo When using multiple selection, all selected tags will display by default, You can set `collapse-tags = true` to fold selected tags.
```html
- Only options of the last level can be selected
+ Display all tags (default)
+ :props="props"
+ clearable>
- Options of all levels can be selected
+ Collapse tags
+ :props="props"
+ collapse-tags
+ clearable>
+
+
+
+```
+:::
+
+
+### Select any level of options
+
+In single selection, only the leaf nodes can be checked, and in multiple selection, check parent nodes will lead to leaf nodes be checked eventually. When enable this feature, it can make parent and child nodes unlinked and you can select any level of options.
+
+:::demo Set `props.checkStrictly = true` to make checked state of a node not affects its parent nodes and child nodes, and then you can select any level of options.
+```html
+
+ Select any level of options (Single selection)
+
+
+
+ Select any level of options (Multiple selection)
+
+```
+:::
+
+### Filterable
+
+Search and select options with a keyword.
+
+:::demo Adding `filterable` to `el-cascader` enables filtering. Cascader will match nodes whose label or parent's label (according to `show-all-levels`) includes input keyword. Of course, you can customize search logic by `filter-method` which accepts a function, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits.
+```html
+
+ Filterable (Single selection)
+
+
+
+ Filterable (Multiple selection)
+
+
+
+
+```
+:::
+
+### Custom option content
+
+You can customize the content of cascader node.
+
+:::demo You can customize the content of cascader node by `scoped slot`. You'll have access to `node` and `data` in the scope, standing for the Node object and node data of the current node respectively。
+```html
+
+
+ {{ data.label }}
+ ({{ data.children.length }})
+
+
+
+
+```
+:::
+
+### Cascader panel
+
+`CascaderPanel` is the core component of `Cascader` which has various of features such as single selection, multiple selection, dynamic loading and so on.
+
+:::demo Just like `el-cascader`, you can set alternative options by `options`, and enable other features by `props`, see the API form below for details.
+```html
+
+
+
+```
+:::
+
+### Cascader Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+| size | size of input | string | medium / small / mini | — |
+| placeholder | placeholder of input | string | — | Select |
+| disabled | whether Cascader is disabled | boolean | — | false |
+| clearable | whether selected value can be cleared | boolean | — | false |
+| show-all-levels | whether to display all levels of the selected value in the input | boolean | — | true |
+| collapse-tags | whether to collapse tags in multiple selection mode | boolean | - | false |
+| separator | option label separator | string | — | ' / ' |
+| filterable | whether the options can be searched | boolean | — | — |
+| filter-method | customize search logic, the first parameter is `node`, the second is `keyword`, and need return a boolean value indicating whether it hits. | function(node, keyword) | - | - |
+| debounce | debounce delay when typing filter keyword, in milliseconds | number | — | 300 |
+| before-filter | hook function before filtering with the value to be filtered as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, filtering will be aborted | function(value) | — | — |
+| popper-class | custom class name for Cascader's dropdown | string | — | — |
+
+### Cascader Events
+| Event Name | Description | Parameters |
|---------- |-------- |---------- |
-| change | Se déclecnhe lorsque la valeur change. | La valeur |
-| active-item-change | Se déclenche quand le parent de l'option active change, ne marche que si `change-on-select` est `false` | Un tableau des options actives |
-| blur | Se déclenche quand le Cascader perds le focus. | (event: Event) |
-| focus | Se déclenche quand le Cascader a le focus. | (event: Event) |
-| visible-change | Se déclenche quand le menu apparaît ou disparaît. | `true` quand il apparaît, `false` sinon. |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
+| blur | triggers when Cascader blurs | (event: Event) |
+| focus | triggers when Cascader focuses | (event: Event) |
+| visible-change | triggers when the dropdown appears/disappears | true when it appears, and false otherwise |
+| remove-tag | triggers when remove tag in multiple selection mode | the value of the tag which is removed |
+
+### Cascader Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+| empty | content when there is no matched options. |
+
+### CascaderPanel Attributes
+| Attribute | Description | Type | Accepted Values | Default |
+|---------- |-------- |---------- |------------- |-------- |
+| value / v-model | binding value | - | — | — |
+| options | data of the options,the key of `value` and `label` can be customize by `Props`.| array | — | — |
+| props | configuration options, see the following table. | object | — | — |
+
+### CascaderPanel Events
+| Event Name | Description | Parameters |
+|---------- |-------- |---------- |
+| change | triggers when the binding value changes | value |
+| expand-change | triggers when expand option changes | an array of the expanding node's parent nodes |
+
+### CascaderPanel Slots
+| Slot Name | Description |
+|---------|-------------|
+| - | the custom content of cascader node, the parameter is { node, data }, which are current Node object and node data respectively. |
+
+### Props
+| Attribute | Description | Type | Accepted Values | Default |
+| -------- | ----------------- | ------ | ------ | ------ |
+| expandTrigger | trigger mode of expanding options | string | click / hover | 'click' |
+| multiple | whether multiple selection is enabled | boolean | - | false |
+| checkStrictly | whether checked state of a node not affects its parent and child nodes | boolean | - | false |
+| emitPath | when checked nodes change, whether to emit an array of node's path, if false, only emit the value of node. | boolean | - | true |
+| lazy | whether to dynamic load child nodes, use with `lazyload` attribute | boolean | - | false |
+| lazyLoad | method for loading child nodes data, only works when `lazy` is true | function(node, resolve) | - | - |
+| value | specify which key of node object is used as the node's value | string | — | 'value' |
+| label | specify which key of node object is used as the node's label | string | — | 'label' |
+| children | specify which key of node object is used as the node's children | string | — | 'children' |
+| disabled | specify which key of node object is used as the node's disabled | string | — | 'disabled' |
+| leaf | specify which key of node object is used as the node's leaf field | string | — | 'leaf' |
diff --git a/examples/docs/zh-CN/cascader.md b/examples/docs/zh-CN/cascader.md
index f675e5892..d2b37bb2d 100644
--- a/examples/docs/zh-CN/cascader.md
+++ b/examples/docs/zh-CN/cascader.md
@@ -6,30 +6,29 @@
有两种触发子菜单的方式
-:::demo 只需为 Cascader 的`options`属性指定选项数组即可渲染出一个级联选择器。通过`expand-trigger`可以定义展开子级菜单的触发方式。本例还展示了`change`事件,它的参数为 Cascader 的绑定值:一个由各级菜单的值所组成的数组。
+:::demo 只需为 Cascader 的`options`属性指定选项数组即可渲染出一个级联选择器。通过`props.expandTrigger`可以定义展开子级菜单的触发方式。
```html