Files
EASYAIuniappNewUI/node_modules/@tuniao/tnui-vue3-uniapp/components/radio/src/radio.ts
T

42 lines
1.2 KiB
TypeScript

import { buildProps, isBoolean, isNumber, isString } from '../../../utils'
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants'
import { radioBaseProps } from '../../base/common-props/radio'
import { useComponentCustomStyleProp } from '../../base/composables/use-component-common-props'
import type { ExtractPropTypes } from 'vue'
export const radioProps = buildProps({
...radioBaseProps,
/**
* @description radio单选框绑定的值
*/
modelValue: {
type: [String, Number, Boolean],
default: '',
},
/**
* @description radio单选框的值,在使用单选组时,radio的值就是label
*/
label: {
type: [String, Number, Boolean],
default: '',
},
/**
* @description 自定义样式
*/
customStyle: useComponentCustomStyleProp,
/**
* @description 自定义类名
*/
customClass: String,
})
export const radioEmits = {
[UPDATE_MODEL_EVENT]: (value: string | number | boolean) =>
isString(value) || isNumber(value) || isBoolean(value),
[CHANGE_EVENT]: (value: string | number | boolean) =>
isString(value) || isNumber(value) || isBoolean(value),
}
export type RadioProps = ExtractPropTypes<typeof radioProps>
export type RadioEmits = typeof radioEmits