import { computed } from 'vue' import { RadioGroup as VanRadioGroup, Radio as VanRadio, cell as VanCell } from 'vant' import { useFormInput, useOptions } from '../../../hooks/form-input' import { formInputProps } from '../../form-input-props' export default { props: formInputProps, setup (props, context) { const { emitModelValue, width, ...formInput } = useFormInput(props, context) const { optionProps, options, getValue, getModelValue, getOtherValue } = useOptions(props, false, formInput.emitInput) // 另一个键 const otherKey = computed(() => { return props.config?.otherKey ?? '' }) const proxyValue = computed(() => { return getValue(props.modelValue) }) const emitInput = (value) => { const modelValue = getModelValue(value) context.emit('update:modelValue', modelValue) if (otherKey.value) { const otherValue = getOtherValue(modelValue, value) context.emit('update:otherValue', otherValue) } } const radioItem = (option) => // 优化操作-cell增加点击事件 const cellItem = (option) => radioItem(option) }} title={option[optionProps.value.label] ?? option} onclick={() => emitInput(option[optionProps.value.value] ?? option)} clickable /> const radioItems = () => options.value.map(cellItem) return () => {radioItems()} } }