feat(slider): add tooltip prop, closes #362

This commit is contained in:
07akioni 2021-07-05 14:23:51 +08:00
parent 72b1287424
commit 6262b6fdf8
7 changed files with 84 additions and 61 deletions

View File

@ -9,6 +9,7 @@
- Add native `title` attributes to some components to enhance the experience.
- `n-tree` add `prefix` and `suffix` in TreeOption.
- `n-carousel` add `dot-placement` prop.
- `n-slider` add `tooltip` prop, closes [#362](https://github.com/TuSimple/naive-ui/issues/362).
### Fixes

View File

@ -7,8 +7,9 @@
- `n-loading-bar` 导出 `LoadingBarApi` 类型
- `n-image` 增加 `imgProps` 属性
- 在部分组件上添加原生 `title` 属性,以提高用户体验
- `n-tree` 在 TreeOption 中`prefix``suffix`
- `n-tree` 在 TreeOption 中增 `prefix``suffix` 属性
- `n-carousel` 增加 `dot-placement` 属性
- `n-slider` 增加 `tooltip` 属性,关闭 [#362](https://github.com/TuSimple/naive-ui/issues/362)
### Fixes

View File

@ -0,0 +1,7 @@
# Disable Tooltip
Set `:tooltip="false"` to disabled the tooltip.
```html
<n-slider :step="10" :tooltip="false" />
```

View File

@ -8,18 +8,22 @@ As far as I know, it is awalys used as volumn control.
basic
range
mark
disable-tooltip
```
## Props
## API
### Slider Props
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| default-value | `number \| [number, number] \| null` | `null` | |
| disabled | `boolean` | `false` | |
| marks | `{ [markValue: number]: string }` | `undefined` | |
| max | `number` | `100` | |
| min | `number` | `0` | |
| range | `boolean` | `false` | |
| step | `number` | `1` | |
| value | `number \| [number, number] \| null` | `undefined` |
| on-update:value | `(value: number \| [number, number]) => void` | `undefined` | |
| default-value | `number \| [number, number] \| null` | `null` | Default value. |
| disabled | `boolean` | `false` | Whether the slider is disabled. |
| marks | `{ [markValue: number]: string }` | `undefined` | Marks of the slider. |
| max | `number` | `100` | Max value of the slider. |
| min | `number` | `0` | Min value of the slider. |
| range | `boolean` | `false` | Whether the slider uses range value. |
| step | `number` | `1` | Step of the slider. |
| tooltip | `boolean` | `true` | Whether to show tooltip. |
| value | `number \| [number, number] \| null` | `undefined` | Value of the slider. |
| on-update:value | `(value: number \| [number, number]) => void` | `undefined` | Callback on value update. |

View File

@ -0,0 +1,7 @@
# 禁用 Tooltip
设定 `:tooltip="false"` 来禁用 tooltip。
```html
<n-slider :step="10" :tooltip="false" />
```

View File

@ -8,18 +8,22 @@
basic
range
mark
disable-tooltip
```
## Props
## API
### Slider Props
| 名称 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| default-value | `number \| [number, number] \| null` | `null` | |
| disabled | `boolean` | `false` | |
| marks | `{ [markValue: number]: string }` | `undefined` | |
| max | `number` | `100` | |
| min | `number` | `0` | |
| range | `boolean` | `false` | |
| step | `number` | `1` | |
| value | `number \| [number, number] \| null` | `undefined` |
| on-update:value | `(value: number \| [number, number]) => void` | `undefined` | |
| default-value | `number \| [number, number] \| null` | `null` | 默认值 |
| disabled | `boolean` | `false` | 是否禁用 |
| marks | `{ [markValue: number]: string }` | `undefined` | Slider 上的标记 |
| max | `number` | `100` | 最大值 |
| min | `number` | `0` | 最小值 |
| range | `boolean` | `false` | 是否选择范围值 |
| step | `number` | `1` | 步长 |
| tooltip | `boolean` | `true` | 是否展示 tooltip |
| value | `number \| [number, number] \| null` | `undefined` | 值 |
| on-update:value | `(value: number \| [number, number]) => void` | `undefined` | 值更新的回调 |

View File

@ -37,10 +37,7 @@ const sliderProps = {
default: 0
},
marks: Object as PropType<Record<string, string>>,
disabled: {
type: Boolean,
default: false
},
disabled: Boolean,
min: {
type: Number,
default: 0
@ -53,10 +50,7 @@ const sliderProps = {
type: Number,
default: 1
},
range: {
type: Boolean,
default: false
},
range: Boolean,
value: [Number, Array] as PropType<number | [number, number]>,
placement: {
type: String as PropType<FollowerPlacement>,
@ -66,7 +60,10 @@ const sliderProps = {
type: Boolean as PropType<boolean | undefined>,
default: undefined
},
// eslint-disable-next-line vue/prop-name-casing
tooltip: {
type: Boolean,
default: true
},
'onUpdate:value': [Function, Array] as PropType<
MaybeArray<<T extends number & [number, number]>(value: T) => void>
>,
@ -855,40 +852,42 @@ export default defineComponent({
)
}}
</VTarget>,
<VFollower
ref="followerRef1"
show={this.mergedShowTooltip1}
to={this.adjustedTo}
teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}
placement={this.placement}
containerClass={this.namespace}
>
{{
default: () => (
<Transition
name="fade-in-scale-up-transition"
appear={this.isMounted}
css={!(this.active && this.prevActive)}
>
{{
default: () =>
this.mergedShowTooltip1 ? (
<div
class={`${mergedClsPrefix}-slider-handle-indicator`}
style={this.indicatorCssVars as CSSProperties}
>
{this.handleValue1}
</div>
) : null
}}
</Transition>
)
}}
</VFollower>
this.tooltip && (
<VFollower
ref="followerRef1"
show={this.mergedShowTooltip1}
to={this.adjustedTo}
teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}
placement={this.placement}
containerClass={this.namespace}
>
{{
default: () => (
<Transition
name="fade-in-scale-up-transition"
appear={this.isMounted}
css={!(this.active && this.prevActive)}
>
{{
default: () =>
this.mergedShowTooltip1 ? (
<div
class={`${mergedClsPrefix}-slider-handle-indicator`}
style={this.indicatorCssVars as CSSProperties}
>
{this.handleValue1}
</div>
) : null
}}
</Transition>
)
}}
</VFollower>
)
]
}}
</VBinder>
{this.range ? (
{this.tooltip && this.range ? (
<VBinder>
{{
default: () => [