From db2b59ed518f5dab5f97d368c975991238a960ec Mon Sep 17 00:00:00 2001 From: hb0730 <1278032416@qq.com> Date: Sun, 31 Mar 2024 09:59:33 +0800 Subject: [PATCH] feat: segmented component global disabled --- src/components/ReSegmented/src/index.tsx | 11 ++++++++++- src/views/components/segmented.vue | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/ReSegmented/src/index.tsx b/src/components/ReSegmented/src/index.tsx index 2c66b58fb..f8768c5ab 100644 --- a/src/components/ReSegmented/src/index.tsx +++ b/src/components/ReSegmented/src/index.tsx @@ -37,6 +37,11 @@ const props = { /** 控件尺寸 */ size: { type: String as PropType<"small" | "default" | "large"> + }, + /** 是否global禁用,默认false */ + disabled: { + type: Boolean, + default: false } }; @@ -57,6 +62,7 @@ export default defineComponent({ : ref(0); function handleChange({ option, index }, event: Event) { + if (props.disabled) return; if (option.disabled) return; event.preventDefault(); isNumber(props.modelValue) @@ -67,6 +73,7 @@ export default defineComponent({ } function handleMouseenter({ option, index }, event: Event) { + if (props.disabled) return; event.preventDefault(); curMouseActive.value = index; if (option.disabled || curIndex.value === index) { @@ -79,6 +86,7 @@ export default defineComponent({ } function handleMouseleave(_, event: Event) { + if (props.disabled) return; event.preventDefault(); curMouseActive.value = -1; } @@ -124,7 +132,8 @@ export default defineComponent({ ref={`labelRef${index}`} class={[ "pure-segmented-item", - option?.disabled && "pure-segmented-item-disabled" + (props.disabled || option?.disabled) && + "pure-segmented-item-disabled" ]} style={{ background: diff --git a/src/views/components/segmented.vue b/src/views/components/segmented.vue index 98bda096b..374dc1686 100644 --- a/src/views/components/segmented.vue +++ b/src/views/components/segmented.vue @@ -240,6 +240,13 @@ watch(size, val => (dynamicSize.value = size.value));

禁用

+

全局禁用

+ +

block 属性(将宽度调整为父元素宽度)