From 2f50cff15997abad4a00d2be8acb079072c46293 Mon Sep 17 00:00:00 2001 From: zhangjiancheng Date: Fri, 25 Aug 2023 10:28:07 +0800 Subject: [PATCH] feat(input & textarea): add maxlength prop type --- src/input/input.en-US.md | 2 +- src/input/input.md | 2 +- src/input/input.tsx | 2 +- src/input/props.ts | 2 +- src/input/type.ts | 2 +- src/textarea/props.ts | 2 +- src/textarea/textarea.en-US.md | 2 +- src/textarea/textarea.md | 2 +- src/textarea/textarea.tsx | 4 +++- src/textarea/type.ts | 2 +- 10 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/input/input.en-US.md b/src/input/input.en-US.md index e6a0253e1..de600c74b 100644 --- a/src/input/input.en-US.md +++ b/src/input/input.en-US.md @@ -16,7 +16,7 @@ format | Function | - | Typescript:`InputFormatType` `type InputFormatType = ( inputClass | String / Object / Array | - | Typescript:`ClassName`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N label | String / Slot / Function | - | Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N maxcharacter | Number | - | \- | N -maxlength | Number | - | \- | N +maxlength | Number / String | - | \- | N name | String | - | \- | N placeholder | String | undefined | \- | N prefixIcon | Slot / Function | - | Typescript:`TNode`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N diff --git a/src/input/input.md b/src/input/input.md index cdd09d557..a3a097806 100644 --- a/src/input/input.md +++ b/src/input/input.md @@ -16,7 +16,7 @@ format | Function | - | 指定输入框展示值的格式。TS 类型:`InputFo inputClass | String / Object / Array | - | t-input 同级类名,示例:'name1 name2 name3' 或 `['name1', 'name2']` 或 `[{ 'name1': true }]`。TS 类型:`ClassName`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N label | String / Slot / Function | - | 左侧文本。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N maxcharacter | Number | - | 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用 | N -maxlength | Number | - | 用户最多可以输入的文本长度,一个中文等于一个计数长度。值为空,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 | N +maxlength | Number / String | - | 用户最多可以输入的文本长度,一个中文等于一个计数长度。值为空,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 | N name | String | - | 名称 | N placeholder | String | undefined | 占位符 | N prefixIcon | Slot / Function | - | 组件前置图标。TS 类型:`TNode`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N diff --git a/src/input/input.tsx b/src/input/input.tsx index 0b8fe0940..9be902ab0 100644 --- a/src/input/input.tsx +++ b/src/input/input.tsx @@ -414,7 +414,7 @@ export default mixins( if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue; if (maxlength) { // input value could be unicode 😊 - return limitUnicodeMaxLength(inputValue, maxlength); + return limitUnicodeMaxLength(inputValue, Number(maxlength)); } if (maxcharacter) { const r = getCharacterLength(inputValue, maxcharacter); diff --git a/src/input/props.ts b/src/input/props.ts index 332d51137..aecb4c45f 100644 --- a/src/input/props.ts +++ b/src/input/props.ts @@ -50,7 +50,7 @@ export default { }, /** 用户最多可以输入的文本长度,一个中文等于一个计数长度。值为空,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */ maxlength: { - type: Number, + type: [Number, String] as PropType, }, /** 名称 */ name: { diff --git a/src/input/type.ts b/src/input/type.ts index 3b20282f8..ab776b0c9 100644 --- a/src/input/type.ts +++ b/src/input/type.ts @@ -59,7 +59,7 @@ export interface TdInputProps { /** * 用户最多可以输入的文本长度,一个中文等于一个计数长度。值为空,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用 */ - maxlength?: number; + maxlength?: number | string; /** * 名称 * @default '' diff --git a/src/textarea/props.ts b/src/textarea/props.ts index 0a826d141..6f3b2c6f7 100644 --- a/src/textarea/props.ts +++ b/src/textarea/props.ts @@ -23,7 +23,7 @@ export default { }, /** 用户最多可以输入的字符个数 */ maxlength: { - type: Number, + type: [Number, String] as PropType, }, /** 名称,HTML 元素原生属性 */ name: { diff --git a/src/textarea/textarea.en-US.md b/src/textarea/textarea.en-US.md index e233fe07d..8d1e9db63 100644 --- a/src/textarea/textarea.en-US.md +++ b/src/textarea/textarea.en-US.md @@ -11,7 +11,7 @@ autosize | Boolean / Object | false | Typescript:`boolean \| { minRows?: numbe disabled | Boolean | false | \- | N label | String / Slot / Function | - | Typescript:`string \| TNode`。[see more ts definition](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N maxcharacter | Number | - | \- | N -maxlength | Number | - | \- | N +maxlength | Number / String | - | \- | N name | String | - | \- | N placeholder | String | undefined | \- | N readonly | Boolean | false | \- | N diff --git a/src/textarea/textarea.md b/src/textarea/textarea.md index aae22d53a..9a4028f43 100644 --- a/src/textarea/textarea.md +++ b/src/textarea/textarea.md @@ -11,7 +11,7 @@ autosize | Boolean / Object | false | 高度自动撑开。 autosize = true 表 disabled | Boolean | false | 是否禁用文本框 | N label | String / Slot / Function | - | 左侧文本。TS 类型:`string \| TNode`。[通用类型定义](https://github.com/Tencent/tdesign-vue/blob/develop/src/common.ts) | N maxcharacter | Number | - | 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度 | N -maxlength | Number | - | 用户最多可以输入的字符个数 | N +maxlength | Number / String | - | 用户最多可以输入的字符个数 | N name | String | - | 名称,HTML 元素原生属性 | N placeholder | String | undefined | 占位符 | N readonly | Boolean | false | 只读状态 | N diff --git a/src/textarea/textarea.tsx b/src/textarea/textarea.tsx index b47a8c362..18b4f8644 100644 --- a/src/textarea/textarea.tsx +++ b/src/textarea/textarea.tsx @@ -149,7 +149,9 @@ export default mixins(Vue as VueConstructor