vue实现两级select联动+input赋值+select选项清空

 更新时间:2024年08月28日 16:54:26   作者:迪尔~  
这篇文章主要介绍了vue实现两级select联动+input赋值+select选项清空过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue两级select联动+input赋值+select选项清空

功能描述

根据select1的选项改变select2的选项,同时 根据select2的选项给input上的时间附上对应的值,当select1清空时将select2和input的值也进行清空

Java传输数据:

  • id(类型:Integer)
  • dictKey(类型:String)
  • dictValue(类型:String)
  • dictTime(类型:Date)

时间用于对input赋值

(格式: (pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “Asia/Shanghai”))

       <el-form-item label="课程类型:" prop="courseType">
        <el-select v-model="form.courseType" clearable placeholder="请选择" :validate-event="true" @change='getValue($event)'>
          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
     <el-form-item label="培训名称:" prop="courseId">
        <el-select v-model="form.courseId" placeholder="请选择培训名称(课题)" :validate-event="true"  ref="vendorId" @change='getTitle'>
          <el-option v-for="item in titleList" :key="item.id" :value="item.dictKey"  :label="item.dictValue"></el-option>
        </el-select>
      </el-form-item>
     <el-form-item label="参训时间:" prop="trainingTime">
        <el-date-picker :disabled="true" v-model="form.trainingTime" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss">
        </el-date-picker>
      </el-form-item>
  • 效果图:

因为时间是从后台获取的,所以设置为用户无法修改

加入select中的数据

(该数据是在前台加入的 select2是根据数据库返回的数据而变化的)

      return {
        titleList: [],//课程类型
        trainingTime:null,
        trainingLocation:null,
       options: [{
          value: 'study',
          label: '学习专题'
        }, {
          value: 'online',
          label: '线上培训'
        }, {
          value: 'offline',
          label: '线下培训'
        }],
        value:''
           }
        
        
  • 效果图:

点击事件

      //获取选项值 判断是否有值 根据有无值是否调用链接
      getValue(event){
      //当event等于0时,可能有两种情况 
      //1.刚进入页面,select1没有选中选项
      //2.选完了,用户将该选项数据清空了 
      //2情况如果只清除select1的值那么已选的select2和input的值都还在
      //如果用户保存了会造成数据错误 所以在清除select1的同时也要清除select2和input的值
        if(event.length==0){
           //清除select1的值
           this.form.title=null
           //清除select2中所有的选项和值
           this.$set(this.form, 'courseId', '')
           //清除input的值
           this.form.trainingTime=null
        }else if(event.length!=0){
       //不为空时将根据select的选项进项数据查询
           dictApi.dictListByCode1(event).then(re => {
          //根据this.titleList.length是否有值清除对应的值 和上面原因类似
           if(this.titleList.length!=0){
           this.$set(this.form, 'courseId', '')
           this.form.trainingTime=null
           this.titleList.length = 0;
          this.form.title=null
           }
          //给titleList附上查询后的返回值
        this.titleList = re.response
           })
        }
      }, 
      getTitle(e) {
        this.titleList.map((item, i) => {
         if (item.dictKey == e) {
        //根据select所选的值给input赋上对应的值
          this.form.trainingTime=item.dictTime     
          this.form.title= item.dictValue
          
        }
      });
    },
  • 效果图:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue引入高德地图并触发实现多个标点的示例详解

    Vue引入高德地图并触发实现多个标点的示例详解

    这篇文章主要介绍了Vue引入高德地图并触发实现多个标点,主要是在public下的index.html中引入地图,引入组件设置宽高100%,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue动态改变背景图片demo分享

    vue动态改变背景图片demo分享

    今天小编就为大家分享一篇vue动态改变背景图片demo分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue项目或网页上实现文字转换成语音播放功能

    vue项目或网页上实现文字转换成语音播放功能

    这篇文章主要介绍了在vue项目或网页上实现文字转换成语音,需要的朋友可以参考下
    2020-06-06
  • Vue中非父子组件通信的方法小结

    Vue中非父子组件通信的方法小结

    在Vue.js中,组件间的通信是构建复杂应用的关键,但当涉及到非父子关系的组件通信时,传统的做法就显得力不从心了,本文将深入探讨几种有效的非父子组件通信方法,并通过具体的代码示例来帮助读者理解和应用这些技术,需要的朋友可以参考下
    2024-09-09
  • vue使用el-table动态合并列及行

    vue使用el-table动态合并列及行

    这篇文章主要为大家详细介绍了vue使用el-table动态合并列及行,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Vue+ElementUI容器无法铺满网页的问题解决

    Vue+ElementUI容器无法铺满网页的问题解决

    这篇文章主要介绍了Vue+ElementUI容器无法铺满网页的问题解决,文章通过图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-08-08
  • 关于vue 的slot分发内容 (多个分发)

    关于vue 的slot分发内容 (多个分发)

    这篇文章主要介绍了关于vue 的slot分发内容 (多个分发),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • vue + vuex todolist的实现示例代码

    vue + vuex todolist的实现示例代码

    这篇文章主要介绍了vue + vuex todolist的实现示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 详解使用vue-cli脚手架初始化Vue项目下的项目结构

    详解使用vue-cli脚手架初始化Vue项目下的项目结构

    这篇文章主要介绍了详解使用vue-cli脚手架初始化Vue项目下的项目结构,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • vuepress打包部署踩坑及解决

    vuepress打包部署踩坑及解决

    这篇文章主要介绍了vuepress打包部署踩坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论