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项目打包成exe可执行文件的实现过程(无瑕疵,完美版)
突然接到公司需求,说客户想让我们把项目直接打包,所以下面这篇文章主要给大家介绍了关于Vue项目打包成exe可执行文件的实现过程,文中通过图文介绍的非常详细,需要的朋友可以参考下2022-11-11
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
最近在做项目时,需要进行两个组件联动,一个轮询获取到消息,然后将其传递给另外一个组件进行横向滚动展示,结果滚动的速度越来越快。接下来通过本文给大家分享Vue中消息横向滚动时setInterval清不掉的问题及解决方法,感兴趣的朋友一起看看吧2019-08-08
关于vue利用postcss-pxtorem进行移动端适配的问题
这篇文章主要介绍了关于vue利用postcss-pxtorem进行移动端适配的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11
vue表单vxe-form多字段联动校验的操作方法(对一个控件校验多个关联字段)
vue表单vxe-form如何多字段联动校验,对一个控件校验多个关联字段,这篇文章给大家介绍vue表单vxe-form如何多字段联动校验,对一个控件校验多个关联字段,感兴趣的朋友跟随小编一起看看吧2026-02-02


最新评论