美文网首页技术论剑,崛起江湖
ElementUI单选按钮控制下拉框

ElementUI单选按钮控制下拉框

作者: 游海东 | 来源:发表于2019-11-28 14:30 被阅读0次

1 问题背景

 页面有一组单选按钮类型(A、B、C和D),控制下面的名称下拉框,如果选择类型A,下拉框筛选出type='A'的数据,其他的同理。

2 实现源码

2.1 组件Sa

<template>
  <el-row :gutter="20">
    <el-col :span="5">
      <el-form ref="dataForm" :model="dataForm">
        <el-form-item label="类型" prop="type">
          <el-radio-group ref="radios" v-model="dataForm.type" @change="changeType">
            <el-radio :label="1">A</el-radio>
            <el-radio :label="2">B</el-radio>
            <el-radio :label="3">C</el-radio>
            <el-radio :label="4">D</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="名称">
          <el-select v-model="dataForm.username">
            <el-option v-for="item in dataForm.options" :key="item.value" :label="item.label" :value="parseInt(item.value)"></el-option>
          </el-select>
        </el-form-item>
      </el-form>
    </el-col>
  </el-row>
</template>

<script>
  export default {
    name: 'Sa',
    data() {
      return {
        dataForm: {
          type: 1,
          username: '',
          options:[],
          option:[{
            label: 'AAA',
            value: '2019001',
            type: 'A'
          },{
            label: 'AAB',
            value: '2019002',
            type: 'A'
          },{
            label: 'AAC',
            value: '2019003',
            type: 'A'
          },{
            label: 'AAD',
            value: '2019004',
            type: 'A'
          },{
            label: 'BBA',
            value: '2019005',
            type: 'B'
          },{
            label: 'BBB',
            value: '2019006',
            type: 'B'
          },{
            label: 'BBC',
            value: '2019007',
            type: 'B'
          },{
            label: 'BBD',
            value: '2019008',
            type: 'B'
          },{
            label: 'CCA',
            value: '2019009',
            type: 'C'
          },{
            label: 'CCB',
            value: '2019010',
            type: 'C'
          },{
            label: 'CCC',
            value: '2019011',
            type: 'C'
          },{
            label: 'CCD',
            value: '2019012',
            type: 'C'
          },{
            label: 'DDA',
            value: '2019013',
            type: 'D'
          },{
            label: 'DDB',
            value: '2019014',
            type: 'D'
          },{
            label: 'DDC',
            value: '2019015',
            type: 'D'
          },{
            label: 'DDD',
            value: '2019016',
            type: 'D'
          }]
        }
      }
    },
    mounted() {
      this.filterData('A')
    },
    methods:{
      changeType(val) {
        this.dataForm.username = ''
        var txt = this.$refs.radios.$children[val-1].$el.innerText
        console.log(txt)
        this.filterData(txt)
      },
      filterData(params){
        let options = this.dataForm.option
        let res = []
        for (let i = 0; i < options.length; i++) {
          if(params == options[i].type){
            res.push(options[i])
          }
        }

        this.dataForm.options = res
      }
    }
  }
</script>

<style>
</style>

2.2 路由配置

import Vue from 'vue'
import Router from 'vue-router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import Sa from '@/components/example/Sa'

Vue.use(Router)
Vue.use(ElementUI)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Sa',
      component: Sa
    }
  ]
})

3 实现效果

3.1 选择类型A

选择类型A

3.2 选择类型B

选择类型B

3.3 选择类型C

选择类型C

3.4 选择类型D

选择类型D

4 问题难点

4.1 获取单选按钮的文字值

      在ElementUI中,获取单选按钮的值(value)是很容易的,但是获取对应的文字值就有点麻烦,需要研究一下单选按钮的相关方法和属性;可以利用原生JS的方法获取innerText,需要打开浏览器控制台进行调试,找到对应的方法和属性。

4.2 对下拉框数据进行过滤

       在选择类型A时,下拉框的数据源也要跟着改变,即将type为A的对象值过滤出来,然后装载到新数组里

4.3 下拉框数据源和原始数据

       绑定下拉框的options和原始数据option不能使用同一变量,否则就达到不了这个效果

相关文章

  • Switch开关控制禁用启用单选按钮组和下拉框

    1. 功能实现 继上一篇ElementUI单选按钮控制下拉框,添加一个switch开关组件,当切换到禁用状态,单选...

  • ElementUI单选按钮控制下拉框

    1 问题背景 2 实现源码 2.1 组件Sa 2.2 路由配置 3 实现效果 3.1 选择类型A 3.2 选择类型...

  • Bootstrap样式-表单

    输入框 文本区域 单选按钮和复选框 下拉框 布局风格 外观风格 状态风格

  • v-model 绑定复选框,单选框

    单选框 复选框 下拉框 绑定值上面介绍的单选按钮、复选框和选择列表在单独使用或单的 模式下 v-model 绑定的...

  • axure学习记录

    1,多个单选按钮,实现单选互相切换,选中所有单选按钮,右键 设置单选按钮组 2,移动 鼠标移入时——>移动 ——>...

  • 『心善渊』Selenium3.0基础 — 18.单选按钮和多选按

    1、页面中的单选按钮和多选按钮 页面中的单选按钮和多选按钮样式如下图: 页面代码片段: 说明: 单选按钮,默认选框...

  • 表单和输入输出

    认识表单元素 1.文本输入框 2.复选框 3.按钮 4.下拉框 5.单选按钮 6.颜色选择框 7.进度框 *使用l...

  • 中后台系统控件交互知识-表单控件篇

    目录: 一、文本输入框 二、下拉框 三、单选框 四、复选框 五、开关按钮 六、穿梭框 七、日期选择 八、步进器 九...

  • 表单和输入输出

    表单元素 表单元素有哪些?文本框、单选框、复选框、按钮、下拉框等。 表单元素的html,修改type可得到不同表单...

  • v-model的使用

    v-model一般在input的下拉框、单选按钮、复选框中的应用v-model 是用于表单数据的双向绑定,其背后其...

网友评论

    本文标题:ElementUI单选按钮控制下拉框

    本文链接:https://www.haomeiwen.com/subject/hnkbwctx.html