单选框Radio的具体实现(加默认值)

1.需求描述

在这里插入图片描述

2.代码实现

2.1样式代码

<a-form-item label="性别">
	<a-radio-group
		v-decorator="[
            'sex',
            is_add
                ? {
                      initialValue: sex[0].value,
                      rules: [{ required: false, message: '请选择性别' }],
                  }
                : {
                      rules: [{ required: false, message: '请选择性别' }],
                  },
        ]"
	 	:disabled="shows">
		<a-radio v-for="(item, index) in sex" :value="item.value" :key="index">{{ item.dictValueName }}</a-radio>
	</a-radio-group>
</a-form-item>

sex是取的字典值,数据结构如下图所示:
在这里插入图片描述
实现加默认值代码:initialValue: sex[0].value

2.2获取数据

此处需要根据后台的需求来处理数据,现在后台需要的是int类型,因此有两种处理方式,不用做任何处理即不用拼接,或者做如下处理:

formValues.f_sex = formValues.f_sex.key;

之前后台需要的是string类型即"0",这时为了避免出错需要都做如下处理:

formValues.f_sex = formValues.f_sex.key.toString();

2.3提交数据

也是需要根据后台的需求来对数据进行处理,若后台只时需要sex,sexValue两个字段,做如下处理即可:

this.sex.forEach((item) => {
	if (item.value === values.sex) {
		values.sexValue = item.dictValueName;
	}
});

若后台需要的是对象类型即sex{key:1,label:"男"},做如下处理:

let sex = this.state.filter((item) => {
	if (item.value == data.f_sex) return item;
});
data.f_sex = {
	key: data.f_sex,
	label: sex[0].dictValueName,
};

或者:

this.sex.forEach((item) => {
   if (item.value === data.sex) {
        data.sex = {
            key: parseInt(item.value),
            label: item.dictValueName,
        };
    }
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值