From be0de2023c18d319bc712ddea475f3d0b4c997ce Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 31 Dec 2021 10:43:17 +0800 Subject: [PATCH] fix(Picker): should not render mask and frame when options is empty (#10135) * docs(Search): update action slot demo * fix(Picker): should not render mask and frame when options is empty --- .../area/test/__snapshots__/demo.spec.ts.snap | 32 --------------- .../test/__snapshots__/index.spec.js.snap | 16 -------- packages/vant/src/picker/Picker.tsx | 31 +++++++++----- .../test/__snapshots__/index.spec.tsx.snap | 40 ------------------- packages/vant/src/picker/test/index.spec.tsx | 14 +++++++ 5 files changed, 35 insertions(+), 98 deletions(-) diff --git a/packages/vant/src/area/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/area/test/__snapshots__/demo.spec.ts.snap index fb2b85d81..3198a1cac 100644 --- a/packages/vant/src/area/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/area/test/__snapshots__/demo.spec.ts.snap @@ -165,14 +165,6 @@ exports[`should render demo and match snapshot 1`] = ` -
-
-
-
@@ -331,14 +323,6 @@ exports[`should render demo and match snapshot 1`] = ` -
-
-
-
@@ -410,14 +394,6 @@ exports[`should render demo and match snapshot 1`] = ` -
-
-
-
@@ -495,14 +471,6 @@ exports[`should render demo and match snapshot 1`] = ` > -
-
-
-
diff --git a/packages/vant/src/area/test/__snapshots__/index.spec.js.snap b/packages/vant/src/area/test/__snapshots__/index.spec.js.snap index ba7b435e5..67059984e 100644 --- a/packages/vant/src/area/test/__snapshots__/index.spec.js.snap +++ b/packages/vant/src/area/test/__snapshots__/index.spec.js.snap @@ -36,14 +36,6 @@ exports[`should render columns-top、columns-bottom slot correctly 1`] = ` > -
-
-
-
Bottom @@ -130,14 +122,6 @@ exports[`should render two columns when columns-num prop is two 1`] = ` -
-
-
-
`; diff --git a/packages/vant/src/picker/Picker.tsx b/packages/vant/src/picker/Picker.tsx index f0c5b0496..6c9fdd3e3 100644 --- a/packages/vant/src/picker/Picker.tsx +++ b/packages/vant/src/picker/Picker.tsx @@ -352,14 +352,29 @@ export default defineComponent({ /> )); + const renderMask = (wrapHeight: number) => { + const hasOptions = formattedColumns.value.some( + (item) => item[valuesKey] && item[valuesKey].length !== 0 + ); + + if (hasOptions) { + const frameStyle = { height: `${itemHeight.value}px` }; + const maskStyle = { + backgroundSize: `100% ${(wrapHeight - itemHeight.value) / 2}px`, + }; + return [ +
, +
, + ]; + } + }; + const renderColumns = () => { const wrapHeight = itemHeight.value * +props.visibleItemCount; - const frameStyle = { height: `${itemHeight.value}px` }; const columnsStyle = { height: `${wrapHeight}px` }; - const maskStyle = { - backgroundSize: `100% ${(wrapHeight - itemHeight.value) / 2}px`, - }; - return (
{renderColumnItems()} -
-
+ {renderMask(wrapHeight)}
); }; diff --git a/packages/vant/src/picker/test/__snapshots__/index.spec.tsx.snap b/packages/vant/src/picker/test/__snapshots__/index.spec.tsx.snap index 01a80faf5..41902d3e0 100644 --- a/packages/vant/src/picker/test/__snapshots__/index.spec.tsx.snap +++ b/packages/vant/src/picker/test/__snapshots__/index.spec.tsx.snap @@ -168,14 +168,6 @@ exports[`columns-top、columns-bottom prop 1`] = ` >
-
-
-
-
Custom Columns Bottom
@@ -403,14 +395,6 @@ exports[`should render confirm/cancel slot correctly 1`] = ` >
-
-
-
-
`; @@ -439,14 +423,6 @@ exports[`should render title slot correctly 1`] = ` > -
-
-
-
`; @@ -465,14 +441,6 @@ exports[`should render toolbar slot correctly 1`] = ` > -
-
-
-
`; @@ -488,14 +456,6 @@ exports[`toolbar-position prop 1`] = ` > -
-
-
-