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 属性(将宽度调整为父元素宽度)