diff --git a/docs/renderers/Form/Tag.md b/docs/renderers/Form/Tag.md index 0e48b5e1..24afe2a3 100644 --- a/docs/renderers/Form/Tag.md +++ b/docs/renderers/Form/Tag.md @@ -2,20 +2,15 @@ 标签输入框。 -- `type` 请设置成 `tag` -- `clearable` 在有值的时候是否显示一个删除图标在右侧。 -- `resetValue` 默认为 `""`, 删除后设置此配置项给定的值。 -- `optionsTip` 选项提示,默认为 `最近您使用的标签` -- `options` 选项配置,类型为数组,成员格式如下,或者直接为字符串,配置后用户输入内容时会作为选项提示辅助输入 - - `label` 文字 - - `value` 值 -- `source` 通过 `options` 只能配置静态数据,如果设置了 `source` 则会从接口拉取,实现动态效果。 -- `joinValues` 默认为 `true` -- 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。 -- 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。 -- `delimiter` 默认为 `,` -- `extractValue` 默认为 `false`, `joinValues`设置为`false`时生效, 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。 -- **还有更多通用配置请参考** [FormItem](./FormItem.md) +- `type` 请设置成 `tag` +- `clearable` 在有值的时候是否显示一个删除图标在右侧。 +- `options` 选项配置,类型为数组,成员格式如下,或者直接为字符串,配置后用户输入内容时会作为选项提示辅助输入,可以不指定,当不指定时完全由用户手动输入。 + - `label` 文字 + - `value` 值 + - `children` 如果需要简单分组,可以考虑把选项包在某个选项的 children 里面。 +- `delimiter` 默认为 `,`,当标签在输入中,输入了这个字符时,也能自动创建一个新标签。 +- `extractValue` 默认为 `false`, `joinValues`设置为`false`时生效, 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。 +- **还有更多通用配置请参考** [FormItem](./FormItem.md) ```schema:height="200" scope="form-item" { @@ -25,7 +20,7 @@ } ``` -带提示功能 +待选项的标签输入。 ```schema:height="240" scope="form-item" { diff --git a/examples/components/Form/Full.jsx b/examples/components/Form/Full.jsx index 2a134a2d..e87038d7 100644 --- a/examples/components/Form/Full.jsx +++ b/examples/components/Form/Full.jsx @@ -65,6 +65,7 @@ export default { label: '标签', placeholder: '', clearable: true, + inline: true, options: [ { label: '诸葛亮', diff --git a/scss/components/_list-menu.scss b/scss/components/_list-menu.scss index 56a26119..9b91961e 100644 --- a/scss/components/_list-menu.scss +++ b/scss/components/_list-menu.scss @@ -1,4 +1,5 @@ .#{$ns}ListMenu { + background: $ListMenu-item-bg; min-width: px2rem(200px); border: $ListMenu-borderWidth solid $ListMenu-bordrColor; border-radius: $ListMenu-borderRadius; @@ -19,7 +20,6 @@ &-item { display: flex; min-height: $ListMenu-item-height; - background: $ListMenu-item-bg; color: $ListMenu-item-color; line-height: $Form-input-lineHeight; font-size: $Form-input-fontSize; diff --git a/scss/components/form/_tag.scss b/scss/components/form/_tag.scss index f7e36d88..1890517b 100644 --- a/scss/components/form/_tag.scss +++ b/scss/components/form/_tag.scss @@ -1,8 +1,20 @@ .#{$ns}TagControl { position: relative; + &-input.is-focused { + border-radius: 0; + } + + &.is-inline { + display: inline-block; + } + > .#{$ns}TagControl-popover { + box-shadow: none; + padding: 0; + border: none; width: 100%; + margin-top: $Form-select-popoverGap - $Form-select-outer-borderWidth; &.#{$ns}PopOver--leftBottomLeftTop { top: 100% !important; @@ -14,3 +26,15 @@ } } } + +.#{$ns}TagControl-popover { + &.#{$ns}PopOver--leftBottomLeftTop > .#{$ns}ListMenu { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + &.#{$ns}PopOver--leftTopLeftBottom > .#{$ns}ListMenu { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } +} diff --git a/src/renderers/Form/Tag.tsx b/src/renderers/Form/Tag.tsx index ca4d9708..c6c694b0 100644 --- a/src/renderers/Form/Tag.tsx +++ b/src/renderers/Form/Tag.tsx @@ -311,6 +311,7 @@ export default class TagControl extends React.PureComponent< onBlur: this.handleBlur, disabled })} + className={cx('TagControl-input')} result={selectedOptions} onResultChange={this.handleChange} itemRender={this.renderItem}