活动介绍

el-radio-button颜色渲染动态复制

时间: 2023-08-16 09:09:26 浏览: 236
要实现 ElementUI 中的 `el-radio-button` 组件的动态颜色渲染,你可以使用 `:style` 绑定属性来设置按钮的背景颜色。下面是一个示例代码: ```html <template> <div> <el-radio-group v-model="selectedColor"> <el-radio-button v-for="color in colors" :key="color.value" :label="color.label" :style="{ backgroundColor: color.value }" > {{ color.label }} </el-radio-button> </el-radio-group> <div>选中的颜色:{{ selectedColor }}</div> </div> </template> <script> export default { data() { return { selectedColor: '', colors: [ { label: '红色', value: '#FF0000' }, { label: '绿色', value: '#00FF00' }, { label: '蓝色', value: '#0000FF' }, ], }; }, }; </script> ``` 在这个示例中,我们使用 `v-for` 循环遍历 `colors` 数组,动态生成 `el-radio-button` 组件。通过 `:style` 绑定属性,我们将每个按钮的背景颜色设置为对应的 `color.value` 值。这样,每个按钮就会根据不同的颜色值渲染不同的背景颜色。 当用户选择不同的按钮时,`v-model` 绑定的 `selectedColor` 数据会更新,从而可以获取到用户选择的颜色值。 你可以根据需要调整代码中的颜色数据和样式。希望对你有帮助!
阅读全文

相关推荐

在vue2中:<el-form label-position=“right” label-width=“80px” size=“small” :model=“form” style=“padding: 0px;” ref=“numberValidateForm” :rules=“rules”> <el-form-item label=“用户名:” prop=“name”> <el-input v-model=“form.name” style=“width: 200px;” name=“name”></el-input> </el-form-item> <el-form-item label=“用户id:”> {{form.u_id}} </el-form-item> <el-form-item label=“手机号:” prop=“phone”> <el-input v-model=“form.phone” style=“width: 250px;” name=“phone”></el-input> </el-form-item> <el-form-item label=“性别” prop=“gender”> <el-radio-group v-model=“form.gender”> <el-radio :label=“1”>男</el-radio> <el-radio :label=“2”>女</el-radio> <el-radio :label=“3”>保密</el-radio> </el-radio-group> </el-form-item> <el-form-item label=“出生日期” prop=“date”> <el-date-picker type=“date” :picker-options=“pickerOptionsStart” placeholder=“选择日期” v-model=“form.date” style=“width: 200px;”></el-date-picker> </el-form-item> <el-form-item class=“e-i-button”> <el-button @click=“locationNone”>取 消</el-button> <el-button style=“margin-left: 200px;” type=“primary” @click.stop=“areaSubmit(‘numberValidateForm’)”>修改</el-button> </el-form-item> </el-form> form: { name: ‘’, date: ‘’, u_id:‘’, gender: 3, phone: ‘’ }, rules:{ phone: [ { required: false, trigger: ‘change’ }, { validator: checkMobile, trigger: ‘change’ }, ], name: [ { required: false, trigger: 'change' }, { validator: checkName, trigger: 'change' }, ] }, async Info(){ if(this.$store.state.user.userInfo){ this.userInfo=await this.$store.state.user.userInfo; if(this.userInfo.birthday!=null){ this.form.date=new Date(this.userInfo.birthday); } this.form.name=this.userInfo.name; this.form.phone=this.userInfo.phone; this.form.u_id=this.userInfo.u_id; if(this.userInfo.gender!=null){ this.form.gender=this.userInfo.gender; } this.avatarUrl=‘http://127.0.0.1:9090’+this.userInfo.picture.slice(8) return true; } },日期选择器可以正常使用但其他输入框有初始值但无法交互修改,在注释掉赋值语句后可以均可正常输入,

<el-form-item v-if="question.question_type === 1" :label="question.question_text" :prop="${question.question_code}" :rules="[ { required: true, message: '请选择', trigger: 'change'} ]"> <el-radio-group v-model="formData[question.question_code]" :disabled='isUpdate'> <el-radio v-for="option in question.options" :key="option.option_code" :value="option.option_code">{{ option.option_text }}</el-radio> </el-radio-group> </el-form-item> <el-form-item v-else-if="question.question_type === 2" :label="question.question_text" :prop="${question.question_code}" :rules="[ { type: 'array', required: true, message: '请至少选择一项', trigger: 'change'} ]"> <el-checkbox-group v-model="formData[question.question_code]" :disabled='isUpdate'> <el-checkbox v-for="option in question.options" :key="option.option_code" :value="option.option_code">{{ option.option_text }}</el-checkbox> </el-checkbox-group> </el-form-item> <el-form ref="formRef" :model="info" :rules="rules" label-width="80px" @submit.prevent=""> <el-row :gutter="16"> <el-col :span="6"> <el-form-item label="姓名" prop="name"> <el-input clearable v-model="info.name" :disabled='isUpdate' /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="性别" prop="gender"> <el-input clearable v-model="info.gender" :disabled='isUpdate' /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="年龄" prop="age"> <el-input clearable v-model="info.age" :disabled='isUpdate' /> </el-form-item> </el-col> </el-row> <el-row :gutter="16"> <el-col :span="10"> <el-form-item label="身份证号" prop="id_no"> <el-input clearable maxlength="18" v-model="info.id_no" :disabled='isUpdate' /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="联系方式" prop="phone_no"> <el-input clearable maxlength="11" v-model="info.phone_no" :disabled='isUpdate' /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="调查方式" prop="visit_type"> <el-radio-group v-model="info.visit_type" :disabled='isUpdate'> <el-radio value="自助" label="自助" /> <el-radio value="电话" label="电话" /> <el-radio value="微信" label="微信" /> </el-radio-group> </el-form-item> </el-col> </el-row> </el-form>两个必填表单提交时如何校验function submit() { formRef.value?.validate?.((valid) => { // console.log(valid) if (!valid) { EleMessage.error('请填写必填项'); return; }

<template> <el-form ref="ruleFormRef" style="max-width: 600px" :model="ruleForm" :rules="rules" label-width="auto"> <el-form-item label="产品名称" prop="name"> <el-input v-model="ruleForm.name" /> </el-form-item> <el-form-item label="产品描述" prop="description"> <el-input v-model="ruleForm.description" type="textarea" /> </el-form-item> <el-form-item label="产品描述" prop="description"> <el-input v-model="ruleForm.description" /> </el-form-item> <el-form-item label="Activity zone" prop="region"> <el-select v-model="ruleForm.region" placeholder="Activity zone"> <el-option label="Zone one" value="shanghai" /> <el-option label="Zone two" value="beijing" /> </el-select> </el-form-item> <el-form-item label="Activity count" prop="count"> <el-select-v2 v-model="ruleForm.count" placeholder="Activity count" :options="options" /> </el-form-item> <el-form-item label="Activity time" required> <el-col :span="11"> <el-form-item prop="date1"> <el-date-picker v-model="ruleForm.date1" type="date" aria-label="Pick a date" placeholder="Pick a date" style="width: 100%" /> </el-form-item> </el-col> <el-col class="text-center" :span="2"> - </el-col> <el-col :span="11"> <el-form-item prop="date2"> <el-time-picker v-model="ruleForm.date2" aria-label="Pick a time" placeholder="Pick a time" style="width: 100%" /> </el-form-item> </el-col> </el-form-item> <el-form-item label="Instant delivery" prop="delivery"> <el-switch v-model="ruleForm.delivery" /> </el-form-item> <el-form-item label="Activity location" prop="location"> <el-segmented v-model="ruleForm.location" :options="locationOptions" /> </el-form-item> <el-form-item label="Activity type" prop="type"> <el-checkbox-group v-model="ruleForm.type"> <el-checkbox value="Online activities" name="type"> Online activities </el-checkbox> <el-checkbox value="Promotion activities" name="type"> Promotion activities </el-checkbox> <el-checkbox value="Offline activities" name="type"> Offline activities </el-checkbox> <el-checkbox value="Simple brand exposure" name="type"> Simple brand exposure </el-checkbox> </el-checkbox-group> </el-form-item> <el-form-item label="Resources" prop="resource"> <el-radio-group v-model="ruleForm.resource"> <el-radio value="Sponsorship">Sponsorship</el-radio> <el-radio value="Venue">Venue</el-radio> </el-radio-group> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm(ruleFormRef)"> Create </el-button> <el-button @click="resetForm(ruleFormRef)">Reset</el-button> </el-form-item> </el-form> </template> <script setup> import productApi from '@/api/products' import { ref, reactive } from 'vue'; // const ruleFormRef = ref<FormInstance>() const ruleForm = reactive({ name: '', description:'', region: '', count: '', date1: '', date2: '', delivery: false, location: '', type: [], resource: '', }) const rules = reactive({ name: [ { required: true, message: '请输入商品名称', trigger: 'blur' }, { max: 10, message: '长度超过10位', trigger: 'blur' }, ], description: [ { required: true, message: '请输入商品描述', trigger: 'blur' }, { max: 200, message: '长度超过200位', trigger: 'blur' }, ], region: [ { required: true, message: 'Please select Activity zone', trigger: 'change', }, ], count: [ { required: true, message: 'Please select Activity count', trigger: 'change', }, ], date1: [ { type: 'date', required: true, message: 'Please pick a date', trigger: 'change', }, ], date2: [ { type: 'date', required: true, message: 'Please pick a time', trigger: 'change', }, ], location: [ { required: true, message: 'Please select a location', trigger: 'change', }, ], type: [ { type: 'array', required: true, message: 'Please select at least one activity type', trigger: 'change', }, ], resource: [ { required: true, message: 'Please select activity resource', trigger: 'change', }, ], }) //产品分类 function getCategory(){ productApi.getCategory().then(res => { categorys.value = res.data; }) }  </script> 哪错了