diff --git a/packages/docs/input-number.md b/packages/docs/input-number.md new file mode 100644 index 0000000000000000000000000000000000000000..0ceb8d2cae562699395b42a3223925ef80b25ee3 --- /dev/null +++ b/packages/docs/input-number.md @@ -0,0 +1,40 @@ +# Divider 分割线 + +## 说明 + +> currentValue: number|string 数字输入框当前值 + +> realValue: number 数字输入框当前真实值 + +> inputValue: string 输入框框当前值 + +> 数字非法判断:非 number 字符串(Number 无法转换为数字)、不在[min, max]范围内; + +## 设计 + +1. 初始化 currentValue + + `currentValue = modelValue ?? defaultValue` + +- 如果 modelValue 非法,展示该值,并使用删除线样式 +- 如果 defaultValue 非法,展示该值,并使用删除线样式 + +2. 聚焦时(鼠标点击,键盘 Tab 切换) + +- 触发 focus 事件,参数:(realValue, event) + +3. 输入时 + +- 触发`input`事件,参数:(inputValue, event) +- 如果输入值非法,展示该值,并使用删除线样式 + +4. 失焦时 + +- +- 触发`blur`事件,参数:(currentValue, event) + +parse/format + +1. 当 change 事件时,执行 format + +2. diff --git a/packages/docs/input.md b/packages/docs/input.md new file mode 100644 index 0000000000000000000000000000000000000000..77b3ab07f023ce79c6d34d7c4c75dec1dfe3d65c --- /dev/null +++ b/packages/docs/input.md @@ -0,0 +1,46 @@ +# Input 输入框 + +## 说明 + +> `realValue: number|string` 数字输入框当前值 + +> `inputValue: string` 输入框框当前值 + +> `displayValue: string` 输入框展示的值 + +> 数字非法判断:非 number 字符串(Number 无法转换为数字)、不在[min, max]范围内; + +## 设计 + +1. 初始化 realValue + + `realValue = modelValue ?? defaultValue` + +- 如果 `modelValue` 非法,展示该值,并使用删除线样式; +- 如果 `defaultValue` 非法,展示该值,并使用删除线样式; + +2. 聚焦时(鼠标点击,键盘 Tab 切换) + +- 触发 `focus` 事件,参数:`(realValue, e)`; + +3. 输入时 + +- 触发`input`事件,参数:`(inputValue, event)`; +- 如果无 `parse`, 赋值`realValue = inputValue`,触发`update:modelValue`事件,参数`(inputValue)`; + +4. 失焦时 + +- 如果有 `format`, `displayValue = format(realValue)`; +- 如果没有 `format`, `displayValue = realValue`; +- 如果有 `parse`, `realValue = parse(inputValue)`; +- 触发`blur`事件,参数:`(realValue, event)`; +- 如果值改变,触发`change`事件,参数: `(realValue)` +- 触发`update:modelValue`事件,参数: `(realValue)` + +5. Enter 键按下时 + +- 如果有 `format`, `displayValue = format(inputValue)`; +- 如果没有 `format`, `displayValue = inputValue`; +- 触发`pressEnter`事件,参数:`(realValue, KeyboardEvent)`; +- 如果值改变,触发`change`事件,参数: `(realValue)` +- 触发`update:modelValue`事件,参数: `(realValue)` diff --git a/packages/opendesign/src/components/button/style/index.scss b/packages/opendesign/src/components/button/style/index.scss index 6fd6e64fe011af30b2ed5a83185c856fbd6dd1c9..6b21916b23d0d141664ce94da200b701c362b165 100644 --- a/packages/opendesign/src/components/button/style/index.scss +++ b/packages/opendesign/src/components/button/style/index.scss @@ -1,4 +1,4 @@ -@import './var.scss'; +@use './var.scss'; .o-btn { outline: none; diff --git a/packages/opendesign/src/components/button/style/index.ts b/packages/opendesign/src/components/button/style/index.ts index 67aac616fc2524b146b7b078fd3b67c1bd3b4a6e..591b2fbd72dcd5e987362d645b561bd2fac42716 100644 --- a/packages/opendesign/src/components/button/style/index.ts +++ b/packages/opendesign/src/components/button/style/index.ts @@ -1 +1,2 @@ +import '../../style'; import './index.scss'; diff --git a/packages/opendesign/src/components/checkbox-group/style/index.scss b/packages/opendesign/src/components/checkbox-group/style/index.scss index 296456cc807ea766be05363b482535b27378eca5..5a8c148c7c02e65486c1eed4d9264155dd2de387 100644 --- a/packages/opendesign/src/components/checkbox-group/style/index.scss +++ b/packages/opendesign/src/components/checkbox-group/style/index.scss @@ -1,4 +1,4 @@ -@import './var.scss'; +@use './var.scss'; .o-checkbox-group { display: inline-flex; diff --git a/packages/opendesign/src/components/checkbox-group/style/index.ts b/packages/opendesign/src/components/checkbox-group/style/index.ts index 67aac616fc2524b146b7b078fd3b67c1bd3b4a6e..591b2fbd72dcd5e987362d645b561bd2fac42716 100644 --- a/packages/opendesign/src/components/checkbox-group/style/index.ts +++ b/packages/opendesign/src/components/checkbox-group/style/index.ts @@ -1 +1,2 @@ +import '../../style'; import './index.scss'; diff --git a/packages/opendesign/src/components/checkbox/style/index.scss b/packages/opendesign/src/components/checkbox/style/index.scss index 1c64f4a11500ec479d7b6aeec2301025c5dd5414..0c0144e06e68711b407298e78bd4b88424821d1c 100644 --- a/packages/opendesign/src/components/checkbox/style/index.scss +++ b/packages/opendesign/src/components/checkbox/style/index.scss @@ -1,4 +1,4 @@ -@import './var.scss'; +@use './var.scss'; .o-checkbox { color: var(--checkbox-color); diff --git a/packages/opendesign/src/components/checkbox/style/index.ts b/packages/opendesign/src/components/checkbox/style/index.ts index 67aac616fc2524b146b7b078fd3b67c1bd3b4a6e..591b2fbd72dcd5e987362d645b561bd2fac42716 100644 --- a/packages/opendesign/src/components/checkbox/style/index.ts +++ b/packages/opendesign/src/components/checkbox/style/index.ts @@ -1 +1,2 @@ +import '../../style'; import './index.scss'; diff --git a/packages/opendesign/src/components/divider/style/index.scss b/packages/opendesign/src/components/divider/style/index.scss index b353041ccdd7a9349a174bf4a5c982273aaaa6d7..5a69e5d4e63d45eff5d00a371bf94fea066f69e0 100644 --- a/packages/opendesign/src/components/divider/style/index.scss +++ b/packages/opendesign/src/components/divider/style/index.scss @@ -1,4 +1,4 @@ -@import './var.scss'; +@use './var.scss'; .o-divider-direction-horizontal { display: flex; diff --git a/packages/opendesign/src/components/divider/style/index.ts b/packages/opendesign/src/components/divider/style/index.ts index bf3c23acb17eb9cae121dc685b01e0026b8c85d1..4513560262c6648e14e7da5a5f205185979a68f5 100644 --- a/packages/opendesign/src/components/divider/style/index.ts +++ b/packages/opendesign/src/components/divider/style/index.ts @@ -1 +1,2 @@ +import '../../style'; import './index.scss'; \ No newline at end of file diff --git a/packages/opendesign/src/components/index.scss b/packages/opendesign/src/components/index.scss index 98357b32dfac1c5088126ac32aae6855e2d06935..a95050352737114d9aacb457df49dff96634b37a 100644 --- a/packages/opendesign/src/components/index.scss +++ b/packages/opendesign/src/components/index.scss @@ -1,5 +1,5 @@ -@import './style/index.scss'; -@import './button/style/index.scss'; -@import './switch/style/index.scss'; -@import './radio/style/index.scss'; -@import './radio-group/style/index.scss'; +@use './style/index.scss'; +@use './button/style/index.scss'; +@use './switch/style/index.scss'; +@use './radio/style/index.scss'; +@use './radio-group/style/index.scss'; diff --git a/packages/opendesign/src/components/input-number/OInputNumber.vue b/packages/opendesign/src/components/input-number/OInputNumber.vue index 2dcd107ab55ce96d315cea90aab418821d68efc3..651a3ce400bdd57f63cfda529fb679c679668642 100644 --- a/packages/opendesign/src/components/input-number/OInputNumber.vue +++ b/packages/opendesign/src/components/input-number/OInputNumber.vue @@ -1,19 +1,36 @@ diff --git a/packages/opendesign/src/components/input-number/__demo__/IndexInputNumber.vue b/packages/opendesign/src/components/input-number/__demo__/IndexInputNumber.vue index f43868a0cf4311bd11a4e0f63056014153d112ca..fbbf8d791a0d8e24caa5d4b84c20d29283d89129 100644 --- a/packages/opendesign/src/components/input-number/__demo__/IndexInputNumber.vue +++ b/packages/opendesign/src/components/input-number/__demo__/IndexInputNumber.vue @@ -3,11 +3,13 @@ import '../style'; import '../../option/style'; import InputNumberBasic from './InputNumberBasic.vue'; +import InputNumberEvent from './InputNumberEvent.vue'; import InputNumberSlot from './InputNumberSlot.vue'; diff --git a/packages/opendesign/src/components/input-number/__demo__/InputNumberBasic.vue b/packages/opendesign/src/components/input-number/__demo__/InputNumberBasic.vue index 87cbc9633992ac2b601f23ba64621e7a931e0f51..28b350bbd9a49c1c6659f3250ce117c0ef6db590 100644 --- a/packages/opendesign/src/components/input-number/__demo__/InputNumberBasic.vue +++ b/packages/opendesign/src/components/input-number/__demo__/InputNumberBasic.vue @@ -1,57 +1,90 @@