|
@ -12,7 +12,7 @@ |
|
|
color="primary" |
|
|
color="primary" |
|
|
:icon="expandOptionsModelValue ? 'remove' : 'add'" |
|
|
:icon="expandOptionsModelValue ? 'remove' : 'add'" |
|
|
size="xs" |
|
|
size="xs" |
|
|
@click="expandOptionsModelValue = !expandOptionsModelValue" |
|
|
@click="expandOptions" |
|
|
/> |
|
|
/> |
|
|
</template> |
|
|
</template> |
|
|
</w-label> |
|
|
</w-label> |
|
@ -66,6 +66,7 @@ interface FieldProps extends FormFieldProps { |
|
|
selectedLabelColor?: string; |
|
|
selectedLabelColor?: string; |
|
|
hideOptions?: boolean; // 隐藏选项 |
|
|
hideOptions?: boolean; // 隐藏选项 |
|
|
lightNotHideOptionsLabel?: boolean; // 高亮非隐藏选项的label |
|
|
lightNotHideOptionsLabel?: boolean; // 高亮非隐藏选项的label |
|
|
|
|
|
onExpand?: (args: any) => void;// 展开与隐藏选项时触发的事件 |
|
|
} |
|
|
} |
|
|
const props = withDefaults(defineProps<FieldProps>(), { |
|
|
const props = withDefaults(defineProps<FieldProps>(), { |
|
|
showIf: true, |
|
|
showIf: true, |
|
@ -77,6 +78,7 @@ const props = withDefaults(defineProps<FieldProps>(), { |
|
|
selectedLabelColor: undefined, |
|
|
selectedLabelColor: undefined, |
|
|
hideOptions: false, |
|
|
hideOptions: false, |
|
|
lightNotHideOptionsLabel: false, |
|
|
lightNotHideOptionsLabel: false, |
|
|
|
|
|
onExpand: undefined, |
|
|
}); |
|
|
}); |
|
|
class FieldMethods extends FormFieldMethods { |
|
|
class FieldMethods extends FormFieldMethods { |
|
|
isTemplateSlot = this.getSlotType(slots); |
|
|
isTemplateSlot = this.getSlotType(slots); |
|
@ -116,6 +118,16 @@ const getExpandOptionsModelValue = () => { |
|
|
const setExpandOptionsModelValue = (val: boolean) => { |
|
|
const setExpandOptionsModelValue = (val: boolean) => { |
|
|
expandOptionsModelValue.value = val; |
|
|
expandOptionsModelValue.value = val; |
|
|
}; |
|
|
}; |
|
|
|
|
|
const expandOptions = () => { |
|
|
|
|
|
expandOptionsModelValue.value = !expandOptionsModelValue.value; |
|
|
|
|
|
if (props.onExpand && typeof props.onExpand === 'function') { |
|
|
|
|
|
props.onExpand({ |
|
|
|
|
|
value: modelValue.value, |
|
|
|
|
|
expand: expandOptionsModelValue.value, |
|
|
|
|
|
form: props['form'], |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const lightLabelComputed = computed(() => { |
|
|
const lightLabelComputed = computed(() => { |
|
|
if (props.lightNotHideOptionsLabel && !props.hideOptions) { |
|
|
if (props.lightNotHideOptionsLabel && !props.hideOptions) { |
|
|