+
{renderLeft()}
{renderLeftIn()}
{renderField()}
- {clearable && !value && renderRightIn()}
- {clearable && value && handleClear()}
+ {innerTag ? renderValueByTags() : renderClear()}
+ {renderRightIn()}
{renderRight()}
diff --git a/src/sites/sites-react/doc/docs/react/migrate-from-v2.md b/src/sites/sites-react/doc/docs/react/migrate-from-v2.md
index cf2fd267e5..efffad7b12 100644
--- a/src/sites/sites-react/doc/docs/react/migrate-from-v2.md
+++ b/src/sites/sites-react/doc/docs/react/migrate-from-v2.md
@@ -180,7 +180,12 @@ plugins: [
- 新增 size 属性,控制图标的大小
- 新增 showScore 属性,展示评分文案
-[//]: # '#### SearchBar'
+#### SearchBar
+
+- `value` 属性,支持受控
+- 新增 `defaultValue` 属性,用于搜索默认值,支持以','分割的字符串,用以展示为多个
+- 新增 `onItemClick` 属性,用于点击展示默认值时的x号,支持回调处理
+
[//]: # '#### ShortPassword'
#### TextArea
diff --git a/src/sites/sites-react/doc/docs/taro/migrate-from-v2.md b/src/sites/sites-react/doc/docs/taro/migrate-from-v2.md
index 8e5f97ab0c..a9b98e450d 100644
--- a/src/sites/sites-react/doc/docs/taro/migrate-from-v2.md
+++ b/src/sites/sites-react/doc/docs/taro/migrate-from-v2.md
@@ -179,7 +179,12 @@ plugins: [
- 新增 size 属性,控制图标的大小
- 新增 showScore 属性,展示评分文案
-[//]: # '#### SearchBar'
+#### SearchBar
+
+- `value` 属性,支持受控
+- 新增 `defaultValue` 属性,用于搜索默认值,支持以','分割的字符串,用以展示为多个
+- 新增 `onItemClick` 属性,用于点击展示默认值时的x号,支持回调处理
+
[//]: # '#### ShortPassword'
#### TextArea
diff --git a/src/styles/variables-jmapp.scss b/src/styles/variables-jmapp.scss
index c84de5194a..f8ef54982f 100644
--- a/src/styles/variables-jmapp.scss
+++ b/src/styles/variables-jmapp.scss
@@ -2040,14 +2040,11 @@ $searchbar-background: var(
) !default;
$searchbar-color: var(--nutui-searchbar-color, $color-title) !default;
$searchbar-gap: var(--nutui-searchbar-gap, 16px) !default;
+$searchbar-inner-gap: var(--nutui-searchbar-inner-gap, 8px) !default;
$searchbar-font-size: var(
--nutui-searchbar-font-size,
$font-size-base
) !default;
-$searchbar-content-padding: var(
- --nutui-searchbar-content-padding,
- 0 12px
-) !default;
$searchbar-content-background: var(
--nutui-searchbar-content-background,
$color-default-light
@@ -2060,6 +2057,7 @@ $searchbar-content-round-border-radius: var(
--nutui-searchbar-content-round-border-radius,
18px
) !default;
+$searchbar-icon-size: var(--nutui-searchbar-icon-size, 20px) !default;
$searchbar-input-height: var(--nutui-searchbar-input-height, 36px) !default;
$searchbar-input-padding: var(
--nutui-searchbar-input-padding,
diff --git a/src/styles/variables-jrkf.scss b/src/styles/variables-jrkf.scss
index b5a0ba6295..534b6b8198 100644
--- a/src/styles/variables-jrkf.scss
+++ b/src/styles/variables-jrkf.scss
@@ -2146,14 +2146,11 @@ $searchbar-background: var(
) !default;
$searchbar-color: var(--nutui-searchbar-color, $color-text-title) !default;
$searchbar-gap: var(--nutui-searchbar-gap, 16px) !default;
+$searchbar-inner-gap: var(--nutui-searchbar-inner-gap, 8px) !default;
$searchbar-font-size: var(
--nutui-searchbar-font-size,
$font-size-base
) !default;
-$searchbar-content-padding: var(
- --nutui-searchbar-content-padding,
- 0 12px
-) !default;
$searchbar-content-background: var(
--nutui-searchbar-content-background,
$color-default-light
@@ -2166,6 +2163,7 @@ $searchbar-content-round-border-radius: var(
--nutui-searchbar-content-round-border-radius,
18px
) !default;
+$searchbar-icon-size: var(--nutui-searchbar-icon-size, 20px) !default;
$searchbar-input-height: var(--nutui-searchbar-input-height, 36px) !default;
$searchbar-input-padding: var(
--nutui-searchbar-input-padding,
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
index 095ae69393..3e9a8e84f3 100644
--- a/src/styles/variables.scss
+++ b/src/styles/variables.scss
@@ -1926,42 +1926,43 @@ $collapse-wrapper-content-background-color: var(
// searchbar(✅)
$searchbar-width: var(--nutui-searchbar-width, 100%) !default;
-$searchbar-padding: var(--nutui-searchbar-padding, 6px 16px) !default;
+$searchbar-padding: var(--nutui-searchbar-padding, 1px 8px) !default;
$searchbar-background: var(
--nutui-searchbar-background,
- $color-background
+ $color-background-sunken
) !default;
$searchbar-color: var(--nutui-searchbar-color, $color-title) !default;
-$searchbar-gap: var(--nutui-searchbar-gap, 16px) !default;
+$searchbar-gap: var(--nutui-searchbar-gap, 12px) !default;
+$searchbar-inner-gap: var(--nutui-searchbar-inner-gap, 8px) !default;
$searchbar-font-size: var(
--nutui-searchbar-font-size,
$font-size-base
) !default;
-$searchbar-content-padding: var(
- --nutui-searchbar-content-padding,
- 0 12px
-) !default;
$searchbar-content-background: var(
--nutui-searchbar-content-background,
$color-background-overlay
) !default;
$searchbar-content-border-radius: var(
--nutui-searchbar-content-border-radius,
- 4px
+ 8px
) !default;
$searchbar-content-round-border-radius: var(
--nutui-searchbar-content-round-border-radius,
- 18px
+ 19px
+) !default;
+$searchbar-icon-size: var(--nutui-searchbar-icon-size, 20px) !default;
+$searchbar-input-height: var(--nutui-searchbar-input-height, 38px) !default;
+$searchbar-input-padding: var(
+ --nutui-searchbar-input-padding,
+ 0 0 0 8px
) !default;
-$searchbar-input-height: var(--nutui-searchbar-input-height, 32px) !default;
-$searchbar-input-padding: var(--nutui-searchbar-input-padding, 0 4px) !default;
$searchbar-input-text-color: var(
--nutui-searchbar-input-text-color,
$color-title
) !default;
$searchbar-input-curror-color: var(
--nutui-searchbar-input-curror-color,
- $color-title
+ $color-primary
) !default;
$searchbar-input-text-align: var(
--nutui-searchbar-input-text-align,
diff --git a/src/types/spec/searchbar/base.ts b/src/types/spec/searchbar/base.ts
index 378aacc871..f39550ab73 100644
--- a/src/types/spec/searchbar/base.ts
+++ b/src/types/spec/searchbar/base.ts
@@ -4,6 +4,7 @@ import { BaseProps } from '../../base/props'
export interface BaseSearchBar extends BaseProps {
value: string
+ defaultValue: string
placeholder: string
shape: UIRound
disabled: boolean
@@ -16,10 +17,12 @@ export interface BaseSearchBar extends BaseProps {
right: ReactNode
leftIn: ReactNode
rightIn: ReactNode
+ tag: boolean
onSearch: (val: string) => void
onChange: (value: string, e: any) => void
onFocus: (value: string, e: any) => void
onBlur: (value: string, e: any) => void
onClear: (e: any) => void
onInputClick: (e: any) => void
+ onItemClick: (value: string, e: any) => void
}