vue實(shí)現(xiàn)兩級(jí)select聯(lián)動(dòng)+input賦值+select選項(xiàng)清空
vue兩級(jí)select聯(lián)動(dòng)+input賦值+select選項(xiàng)清空
功能描述
根據(jù)select1的選項(xiàng)改變select2的選項(xiàng),同時(shí) 根據(jù)select2的選項(xiàng)給input上的時(shí)間附上對(duì)應(yīng)的值,當(dāng)select1清空時(shí)將select2和input的值也進(jìn)行清空
Java傳輸數(shù)據(jù):
id
(類型:Integer)dictKey
(類型:String)dictValue
(類型:String)dictTime
(類型:Date)
時(shí)間用于對(duì)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="請(qǐng)選擇" :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="培訓(xùn)名稱:" prop="courseId"> <el-select v-model="form.courseId" placeholder="請(qǐng)選擇培訓(xùn)名稱(課題)" :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="參訓(xùn)時(shí)間:" 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>
- 效果圖:
因?yàn)闀r(shí)間是從后臺(tái)獲取的,所以設(shè)置為用戶無(wú)法修改
加入select中的數(shù)據(jù)
(該數(shù)據(jù)是在前臺(tái)加入的 select2是根據(jù)數(shù)據(jù)庫(kù)返回的數(shù)據(jù)而變化的)
return { titleList: [],//課程類型 trainingTime:null, trainingLocation:null, options: [{ value: 'study', label: '學(xué)習(xí)專題' }, { value: 'online', label: '線上培訓(xùn)' }, { value: 'offline', label: '線下培訓(xùn)' }], value:'' }
- 效果圖:
點(diǎn)擊事件
//獲取選項(xiàng)值 判斷是否有值 根據(jù)有無(wú)值是否調(diào)用鏈接 getValue(event){ //當(dāng)event等于0時(shí),可能有兩種情況 //1.剛進(jìn)入頁(yè)面,select1沒(méi)有選中選項(xiàng) //2.選完了,用戶將該選項(xiàng)數(shù)據(jù)清空了 //2情況如果只清除select1的值那么已選的select2和input的值都還在 //如果用戶保存了會(huì)造成數(shù)據(jù)錯(cuò)誤 所以在清除select1的同時(shí)也要清除select2和input的值 if(event.length==0){ //清除select1的值 this.form.title=null //清除select2中所有的選項(xiàng)和值 this.$set(this.form, 'courseId', '') //清除input的值 this.form.trainingTime=null }else if(event.length!=0){ //不為空時(shí)將根據(jù)select的選項(xiàng)進(jìn)項(xiàng)數(shù)據(jù)查詢 dictApi.dictListByCode1(event).then(re => { //根據(jù)this.titleList.length是否有值清除對(duì)應(yīng)的值 和上面原因類似 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) { //根據(jù)select所選的值給input賦上對(duì)應(yīng)的值 this.form.trainingTime=item.dictTime this.form.title= item.dictValue } }); },
- 效果圖:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli腳手架打包靜態(tài)資源請(qǐng)求出錯(cuò)的原因與解決
這篇文章主要給大家介紹了關(guān)于vue-cli腳手架打包靜態(tài)資源請(qǐng)求出錯(cuò)的原因與解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue-cli具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06vue響應(yīng)式系統(tǒng)之observe、watcher、dep的源碼解析
這篇文章主要介紹了vue響應(yīng)式系統(tǒng)之observe、watcher、dep的源碼解析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04基于element-ui封裝可搜索的懶加載tree組件的實(shí)現(xiàn)
這篇文章主要介紹了基于element-ui封裝可搜索的懶加載tree組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05vue如何利用axios調(diào)用后臺(tái)api接口
這篇文章主要介紹了vue如何利用axios調(diào)用后臺(tái)api接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Vue在echarts?tooltip中添加點(diǎn)擊事件案例詳解
本文主要介紹了Vue項(xiàng)目中在echarts?tooltip添加點(diǎn)擊事件的案例詳解,代碼具有一定的價(jià)值,感興趣的小伙伴可以來(lái)學(xué)習(xí)一下2021-11-11VUE利用vuex模擬實(shí)現(xiàn)新聞點(diǎn)贊功能實(shí)例
本篇文章主要介紹了VUE利用vuex模擬實(shí)現(xiàn)新聞點(diǎn)贊功能實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06