From 9c0d39e92feae5d5f87a1bfed4a89db99dd26b7d Mon Sep 17 00:00:00 2001 From: Bang <15622356989@163.com> Date: Thu, 12 Jan 2023 10:10:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=84=E8=8C=83switch,=20radio,=20che?= =?UTF-8?q?ckbox=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/checkbox.md | 38 +-- packages/docs/radio.md | 38 +-- packages/docs/switch.md | 16 +- .../src/components/button/OButton.vue | 2 +- .../checkbox-group/OCheckboxGroup.vue | 7 +- .../src/components/checkbox-group/provide.ts | 1 + .../src/components/checkbox/OCheckbox.vue | 35 ++- .../checkbox/__demo__/CheckboxBasic.vue | 7 +- .../checkbox/__demo__/CheckboxDisabled.vue | 7 +- .../checkbox/__demo__/CheckboxEvents.vue | 34 +++ .../checkbox/__demo__/CheckboxGroup.vue | 6 +- .../checkbox/__demo__/CheckboxSlots.vue | 11 +- .../checkbox/__demo__/IndexCheckbox.vue | 8 +- .../src/components/checkbox/style/index.scss | 28 +-- .../src/components/divider/ODivider.vue | 0 .../opendesign/src/components/link/OLink.vue | 2 +- .../components/radio-group/ORadioGroup.vue | 13 +- .../src/components/radio-group/provide.ts | 1 + .../src/components/radio/ORadio.vue | 31 ++- .../components/radio/__demo__/IndexRadio.vue | 8 +- .../components/radio/__demo__/RadioBasic.vue | 1 + .../radio/__demo__/RadioDisabled.vue | 1 + .../components/radio/__demo__/RadioEvents.vue | 34 +++ .../components/radio/__demo__/RadioGroup.vue | 7 +- .../components/radio/__demo__/RadioSlots.vue | 11 +- .../src/components/radio/style/index.scss | 55 ++--- .../src/components/style/animation.scss | 2 +- .../src/components/switch/OSwitch.vue | 49 ++-- .../switch/__demo__/IndexSwitch.vue | 2 + .../__demo__/SwitchDisabledAndLoading.vue | 8 +- .../{SwitchShape.vue => SwitchEvents.vue} | 10 +- .../src/components/switch/style/index.scss | 231 +++++++----------- 32 files changed, 392 insertions(+), 312 deletions(-) create mode 100644 packages/opendesign/src/components/checkbox/__demo__/CheckboxEvents.vue create mode 100644 packages/opendesign/src/components/divider/ODivider.vue create mode 100644 packages/opendesign/src/components/radio/__demo__/RadioEvents.vue rename packages/opendesign/src/components/switch/__demo__/{SwitchShape.vue => SwitchEvents.vue} (52%) diff --git a/packages/docs/checkbox.md b/packages/docs/checkbox.md index 506cc084..96ce655c 100644 --- a/packages/docs/checkbox.md +++ b/packages/docs/checkbox.md @@ -2,35 +2,39 @@ ## props -| name | type | 默认值 | 说明 | -| :------------------- | :------------------------ | :----- | ----------- | -| value | string \| number | - | 多选框 vale | -| model-value(v-model) | Array | [ ] | 双向绑定值 | -| disabled | boolean | false | 是否禁用 | +| name | type | 默认值 | 说明 | +| :------------------- | :------------------------ | :----- | ----------------- | +| value | string \| number | - | 必选,多选框 vale | +| model-value(v-model) | Array | [ ] | 可选,双向绑定值 | +| disabled | boolean | false | 可选,是否禁用 | ## event -| name | 参数 | 说明 | -| :----- | :---------------------------------------------------- | :------------- | -| change | {value: Array, checked: boolean}; | 状态切换后触发 | +| name | 参数 | 说明 | +| :----- | :------------------------------ | :----------- | +| change | val: Array; | 值改变时触发 | ## expose +| name | 说明 | +| :------ | :------------- | +| checked | 多选框是否选中 | + ## slot -| name | 说明 | -| :------- | :----------- | -| checkbox | 自定义多选框 | +| name | 参数 | 说明 | +| :------- | :--------------------------------- | :----------- | +| checkbox | checked:boolean; disabled: boolean | 自定义多选框 | # CheckboxGroup 多选框组 ## props -| name | type | 默认值 | 说明 | -| :------------------- | :------------------------ | :----- | ---------- | -| model-value(v-model) | Array | - | 双向绑定值 | -| disabled | boolean | false | 是否禁用 | -| direction | CheckboxGroupDirectionT | false | 排列方向 | +| name | type | 默认值 | 说明 | +| :------------------- | :------------------------ | :----- | ---------------- | +| model-value(v-model) | Array | [ ] | 可选,双向绑定值 | +| disabled | boolean | false | 可选,是否禁用 | +| direction | CheckboxGroupDirectionT | false | 可选,排列方向 | ```ts type CheckGroupDirectionT = 'horizontal' | 'vertical'; @@ -40,7 +44,7 @@ type CheckGroupDirectionT = 'horizontal' | 'vertical'; | name | 参数 | 说明 | | :----- | :------------------------------- | :------------- | -| change | value: Array | 状态切换后触发 | +| change | val: Array | 状态切换后触发 | ## expose diff --git a/packages/docs/radio.md b/packages/docs/radio.md index 186c4982..cdcfd3c1 100644 --- a/packages/docs/radio.md +++ b/packages/docs/radio.md @@ -2,35 +2,39 @@ ## props -| name | type | 默认值 | 说明 | -| :------------------- | :-------------------------- | :----- | ----------- | -| value | string \| number \| boolean | - | 单选框 vale | -| model-value(v-model) | string \| number \| boolean | - | 双向绑定值 | -| disabled | boolean | false | 是否禁用 | +| name | type | 默认值 | 说明 | +| :------------------- | :-------------------------- | :----- | ------------------ | +| value | string \| number \| boolean | - | 必选,单选框 value | +| model-value(v-model) | string \| number \| boolean | - | 可选,双向绑定值 | +| disabled | boolean | false | 可选,是否禁用 | ## event -| name | 参数 | 说明 | -| :----- | :------------------------------------------------------ | :------------- | -| change | {value: string \| number \| boolean, checked: boolean}; | 状态切换后触发 | +| name | 参数 | 说明 | +| :----- | :------------------------------- | :----------- | +| change | val: string \| number \| boolean | 值改变时触发 | ## expose +| name | 说明 | +| :------ | :------------- | +| checked | 单选框是否选中 | + ## slot -| name | 说明 | -| :---- | :----------- | -| radio | 自定义单选框 | +| name | 参数 | 说明 | +| :---- | :--------------------------------- | :----------- | +| radio | checked:boolean; disabled: boolean | 自定义单选框 | # RadioGroup 单选框组 ## props -| name | type | 默认值 | 说明 | -| :------------------- | :-------------------------- | :----------- | ---------- | -| model-value(v-model) | string \| number \| boolean | - | 双向绑定值 | -| disabled | boolean | false | 是否禁用 | -| direction | RadioGroupDirectionT | 'horizontal' | 排列方向 | +| name | type | 默认值 | 说明 | +| :------------------- | :-------------------------- | :----------- | ---------------- | +| model-value(v-model) | string \| number \| boolean | - | 可选,双向绑定值 | +| disabled | boolean | false | 可选,是否禁用 | +| direction | RadioGroupDirectionT | 'horizontal' | 可选,排列方向 | ```ts type RadioGroupDirectionT = 'horizontal' | 'vertical'; @@ -40,7 +44,7 @@ type RadioGroupDirectionT = 'horizontal' | 'vertical'; | name | 参数 | 说明 | | :----- | :--------------------------------- | :------------- | -| change | value: string \| number \| boolean | 状态切换后触发 | +| change | val: string \| number \| boolean | 状态切换后触发 | ## expose diff --git a/packages/docs/switch.md b/packages/docs/switch.md index e76d4a83..0f8cdb84 100644 --- a/packages/docs/switch.md +++ b/packages/docs/switch.md @@ -2,14 +2,14 @@ ## props -| name | type | 默认值 | 说明 | -| :----------- | :------------------------------------------ | :------------ | ------------------------------------------------------------ | -| model:value | boolean | false | 开关状态 | -| shape | ShapeT | ShapeT.NORMAL | 开关形状 | -| size | SizeT | SizeT.NORMAL | 开关尺寸 | -| disabled | boolean | false | 是否禁用 | -| loading | boolean | false | 加载状态 | -| beforeChange | (val: boolean): Promise\\|boolean | - | return Promise.resolve(true)继续切换,resolve(false)阻止切换 | +| name | type | 默认值 | 说明 | +| :------------------- | :------------------------------------------ | :------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| model-value(v-model) | boolean | false | 可选,双向绑定值 | +| size | SizeT | SizeT.NORMAL | 可选,开关尺寸 | +| shape | ShapeT | ShapeT.NORMAL | 可选,开关形状 | +| disabled | boolean | false | 可选,是否禁用 | +| loading | boolean | false | 可选,是否加载中 | +| beforeChange | (val: boolean): Promise\\|boolean | - | 状态改变前的钩子函数,返回 true 或者返回 promise 且 resolve(true)则继续切换,返回 false 或者返回 promise 且被 reject 或 resolve(false)则阻止切换, | ## event diff --git a/packages/opendesign/src/components/button/OButton.vue b/packages/opendesign/src/components/button/OButton.vue index 74885620..937d4d09 100644 --- a/packages/opendesign/src/components/button/OButton.vue +++ b/packages/opendesign/src/components/button/OButton.vue @@ -42,7 +42,7 @@ const props = withDefaults(defineProps(), { ]" > - + diff --git a/packages/opendesign/src/components/checkbox-group/OCheckboxGroup.vue b/packages/opendesign/src/components/checkbox-group/OCheckboxGroup.vue index 53055c70..fbc56297 100644 --- a/packages/opendesign/src/components/checkbox-group/OCheckboxGroup.vue +++ b/packages/opendesign/src/components/checkbox-group/OCheckboxGroup.vue @@ -25,12 +25,15 @@ const emits = defineEmits<{ const { modelValue, disabled } = toRefs(props); -const onChange = (val: Array) => { +const onModelValueUpdate = (val: Array) => { emits('update:modelValue', val); +}; + +const onChange = (val: Array) => { emits('change', val); }; -provide(checkboxGroupInjectKey, { modelValue, disabled, onChange }); +provide(checkboxGroupInjectKey, { modelValue, disabled, onModelValueUpdate, onChange });