Skip to content

Commit bff8f63

Browse files
committed
feat(Picker): 增加可选项禁用配置
1 parent 161733d commit bff8f63

File tree

11 files changed

+26
-6
lines changed

11 files changed

+26
-6
lines changed

src/packages/picker/demos/h5/demo1.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const Demo1 = () => {
2222
{ value: 8, text: '大庆市' },
2323
{ value: 9, text: '绥化市' },
2424
{ value: 10, text: '潍坊市' },
25-
{ value: 12, text: '乌鲁木齐市' },
25+
{ value: 12, text: '乌鲁木齐市', disabled: true },
2626
],
2727
]
2828
const changePicker = (list: any[], option: any, columnIndex: number) => {

src/packages/picker/demos/taro/demo1.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const Demo1 = () => {
2222
{ value: 8, text: '大庆市' },
2323
{ value: 9, text: '绥化市' },
2424
{ value: 10, text: '潍坊市' },
25-
{ value: 12, text: '乌鲁木齐市' },
25+
{ value: 12, text: '乌鲁木齐市', disabled: true },
2626
],
2727
]
2828
const changePicker = (list: any[], option: any, columnIndex: number) => {

src/packages/picker/doc.en-US.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Cancel the 3D display effect by setting `threeDimensional`, and control the dura
103103
| --- | --- | --- | --- |
104104
| text | Text of column | `string` \| `number` | `-` |
105105
| value | Value of column | `string` \| `number` | `-` |
106+
| disabled | Whether to disable | `boolean` | `false` |
106107
| children | Cascader Option | `Array` | `-` |
107108

108109
## Theming

src/packages/picker/doc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ import { Picker } from '@nutui/nutui-react'
103103
| --- | --- | --- | --- |
104104
| text | 选项的文字内容 | `string` \| `number` | `-` |
105105
| value | 选项对应的值,且唯一 | `string` \| `number` | `-` |
106+
| disabled | 是否禁用 | `boolean` | `false` |
106107
| children | 用于级联选项 | `Array` | `-` |
107108

108109
## 主题定制

src/packages/picker/doc.taro.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ import { Picker } from '@nutui/nutui-react-taro'
103103
| --- | --- | --- | --- |
104104
| text | 选项的文字内容 | `string` \| `number` | `-` |
105105
| value | 选项对应的值,且唯一 | `string` \| `number` | `-` |
106+
| disabled | 是否禁用 | `boolean` | `false` |
106107
| children | 用于级联选项 | `Array` | `-` |
107108

108109
## 主题定制

src/packages/picker/doc.zh-TW.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ import { Picker } from '@nutui/nutui-react'
103103
| --- | --- | --- | --- |
104104
| text | 選項的文字內容 | `string` \| `number` | `-` |
105105
| value | 選項對應的值,且唯一 | `string` \| `number` | `-` |
106+
| disabled | 是否禁用 | `boolean` | `false` |
106107
| children | 用於級聯選項 | `Array` | `-` |
107108

108109
## 主題定製

src/packages/picker/picker.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@
119119
color: $picker-item-text-color;
120120
font-size: $picker-item-text-font-size;
121121
text-align: center;
122+
123+
&-disabled {
124+
color: $picker-item-text-color-disabled;
125+
}
122126
}
123127

124128
&-item {

src/packages/picker/pickerpanel.taro.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ const InternalPickerPanel: ForwardRefRenderFunction<
118118
}
119119

120120
const setChooseValue = (move: number) => {
121-
chooseItem?.(options?.[Math.round(-move / lineSpacing.current)], keyIndex)
121+
const option = options?.[Math.round(-move / lineSpacing.current)]
122+
if (option.disabled) return
123+
chooseItem?.(option, keyIndex)
122124
}
123125

124126
// 开始滚动
@@ -278,7 +280,7 @@ const InternalPickerPanel: ForwardRefRenderFunction<
278280
<div
279281
className={`nut-picker-roller-item ${
280282
isHidden(index + 1) && 'nut-picker-roller-item-hidden'
281-
}`}
283+
} ${item.disabled && 'nut-picker-roller-item-disabled'}`}
282284
style={{
283285
transform: `rotate3d(1, 0, 0, ${
284286
-rotation * (index + 1)

src/packages/picker/pickerpanel.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,9 @@ const InternalPickerPanel: ForwardRefRenderFunction<
114114
}
115115

116116
const setChooseValue = (move: number) => {
117-
chooseItem?.(options?.[Math.round(-move / lineSpacing)], keyIndex)
117+
const option = options?.[Math.round(-move / lineSpacing)]
118+
if (option.disabled) return
119+
chooseItem?.(option, keyIndex)
118120
}
119121

120122
// 开始滚动
@@ -268,7 +270,7 @@ const InternalPickerPanel: ForwardRefRenderFunction<
268270
<div
269271
className={`nut-picker-roller-item ${
270272
isHidden(index + 1) && 'nut-picker-roller-item-hidden'
271-
}`}
273+
} ${item.disabled && 'nut-picker-roller-item-disabled'}`}
272274
style={{
273275
transform: `rotate3d(1, 0, 0, ${
274276
-rotation * (index + 1)

src/styles/variables-jmapp.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,10 @@ $picker-item-text-color: var(
584584
--nutui-picker-item-text-color,
585585
$color-text
586586
) !default;
587+
$picker-item-text-color-disabled: var(
588+
--nutui-picker-item-text-color,
589+
$color-text-disabled
590+
) !default;
587591
$picker-item-active-text-color: var(
588592
--nutui-picker-item-active-text-color,
589593
$color-text

0 commit comments

Comments
 (0)