亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue+iview/elementUi實現城市多選

2019-11-19 11:56:02
字體:
來源:轉載
供稿:網友

城市多選組件

最近收到了一個需求,管理系統需要上線一個活動,但是活動是根據地區上線的,最小范圍到市,于是有了下面這個組件

頁面展示如圖:




上代碼~~~

<template>  <div class="tm-mil-city">   <p class="tm-mil-city-title tm-mil-mb20">{{name}}</p>   <div class="tm-mil-district-box tm-mil-mb20">    <Select class="tm-mil-selsect" style='width:200px' v-model='province' placeholder='全部' @on-change='changeProvince'>     <Option v-for='item in provinceList' :value='item.id' :key='item.id'>{{ item.regionName }}</Option>    </Select>    <span class="tm-mil-selsect-all-btn tm-mil-ml20 tm-mil-colB" @click="chooseAllRegion">全選</span>    <div class="tm-mil-line-loading" v-if="province && !cityList.length"><img src="../assets/loading.gif" alt=""></div>    <div class="tm-mil-mb20" v-if="cityList.length">     <CheckboxGroup style="marginTop:10px;width:900px" v-model="checkCity">       <Checkbox v-for='item in cityList' :key='item.id' :label="item.regionCode">{{item.regionName}}</Checkbox>     </CheckboxGroup>     <Button v-show="cityList.length" size="small" style="marginTop:10px" @click="saveCheckCity">確定</Button>    </div>   </div>   <p class="tm-mil-city-title tm-mil-mb20">已選擇的地區</p>   <div class="tm-mil-line-loading" v-if="waiting"><img src="../assets/loading.gif" alt=""></div>   <div class="tm-mil-choose-district" v-else>    <div v-for="(item, idx) in allCheckCityShowList" :key="idx">     <span class="tm-mil-colB">{{provinceFilter(item.province)}}</span>     <span class="tm-mil-ml10" v-for="(obj, indx) in item.cityList" :key="indx" >{{obj}}</span>    </div>    <span v-if="!allCheckCityShowList.length">全部地區</span>   </div>  </div></template>

注: <Select></Select>/<CheckboxGroup></CheckboxGroup>都是iview的組件,詳情請看iview官網,同理elementUi也有相同的組件

iview官網

elementUi官網

 data() {    return {      waiting: false, // loading      province: '', // 當前的省      provinceList: [], // 省列表      Municipality: [{id: 2, name: '北京'}, {id: 3, name: '天津'}, {id: 10, name: '上海'}, {id: 23, name: '重慶'}, {id: 2, name: '北京'}], // 直轄市      cityList: [], // 城市列表      activityTime: [], // 活動時間      checkCity: [], // 當前省所選的市列表 -- 展示      allCheckCityApi: [], // 所有的市列表 -- 接口      allCheckCitySave: { // 存儲所有選擇各省對應的市列表 -- 存儲      // '10001': [{code:'10111', name:'北京'}]      },      allCheckCityShowList: [ // 存儲所有選擇的市列表 -- 展示      // { province: '10001', cityList: ['上海', 2, 3]}      ]    }  },

函數:

 // 獲取省級數據  getOrigin() {    this.axios.get(`/users/open/region/topRegions`).then(res => {     if (res.status === 200) {      this.provinceList = res.data     }    })  }  // 返回省名稱  provinceFilter(id) {    return this.provinceList.filter(item => item.id === id)[0].regionName  }   // 選擇全部地區  chooseAllRegion() {    this.province = 0    this.cityList = []    this.checkCity = []    this.allCheckCityApi = []    this.allCheckCitySave = []    this.allCheckCityShowList = []  }  // 保存城市后存儲數據 -- 接口  handleSaveCityList() {    let _arr = []    for (var key in this.allCheckCitySave) {      _arr = _arr.concat(this.allCheckCitySave[key])    }    this.allCheckCityApi = _arr  }
 // 更改省  changeProvince(parentId) {    if (!parentId) {      return    }    this.cityList = []     //獲取該省下的市列表    this.axios.get(`/users/open/region/${parentId}/subRegions`).then(res => {     if (res.status === 200) {      this.cityList = res.data     }    })    // 處理已經選擇的市    let _checkCity = this.allCheckCitySave[parentId] || []     let _checkCityList = []    _checkCity.forEach(el => {      _checkCityList.push(el.regionCode)    })    this.checkCity = JSON.parse(JSON.stringify(_checkCityList))  }  // 保存所選的當前市  saveCheckCity() {  // 處理選擇不同省,保存當前省已選擇的投放城市    if (!this.checkCity.length) {      return    }    this.waiting = true    // 當前城市的省code    let _province = JSON.parse(JSON.stringify(this.province))    // 當前城市的省名稱    let _provinceName = this.Municipality.filter(el => el.id === _province)[0] && this.Municipality.filter(el => el.id === _province)[0].name || ''    // 已選擇城市(code name level)列表    let _arrCheckMsgList = []    // 當前選擇的城市code    let _arrCheck = JSON.parse(JSON.stringify(this.checkCity))    _arrCheck.forEach(el => {      let _obj = this.cityList.filter(_el => _el.regionCode === el)[0]      // 區別市轄區      let _regionName = _provinceName + _obj.regionName      let _regionLevel = _obj.regionLevel      let obj = {regionCode: el, regionName: _regionName, regionLevel: _regionLevel, parentId: _province}      // let obj = {regionCode: el, regionName: _regionName, regionLevel: _regionLevel}      _arrCheckMsgList.push(obj)    })    // 存儲到當前省對應的已選擇的市列表 -- 存儲    this.$set(this.allCheckCitySave, _province, _arrCheckMsgList)    // 保存城市后存儲數據 -- 接口    this.handleSaveCityList()    // 處理已選擇的投放地區數據展示    let _arrCheckMsg = []    // 處理展示列表-城市名稱 -- 直轄市(北京,上海等)選地區時要加上直轄市前綴,如 北京市轄區/北京縣    this.cityList.map(obj => {      if (_arrCheck.indexOf(obj.regionCode) > -1) {      _arrCheckMsg.push(_provinceName + obj.regionName)      }    })    let _msgObj = {      province: _province,      cityList: _arrCheckMsg      }    let _len = this.allCheckCityShowList.filter(item => item.province === _province).length || 0    // 新增 / 替換    if (!_len) {      this.allCheckCityShowList.push(_msgObj)      this.waiting = false    } else {      this.allCheckCityShowList.forEach((item, idx) => {      if (item.province === _province) {        this.$set(this.allCheckCityShowList, idx, _msgObj)        this.waiting = false        return      }      })    }  }

已上,具體的解釋都在注釋里面,有疑問的地方歡迎留言~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图五月天| 青草青草久热精品视频在线观看| 国产网站欧美日韩免费精品在线观看| 色噜噜亚洲精品中文字幕| 日韩av中文在线| 国产精品久久久久久久久粉嫩av| 日韩经典中文字幕在线观看| 亚洲人成在线免费观看| 国产美女被下药99| 国产亚洲精品久久久久久| 日韩有码在线播放| 97视频在线观看播放| 久久这里只有精品99| 国产综合视频在线观看| 久久久欧美精品| 精品国产鲁一鲁一区二区张丽| 亚洲色图日韩av| 在线视频免费一区二区| 国产精品一区二区久久精品| 狠狠色香婷婷久久亚洲精品| 日韩亚洲精品电影| 久久99精品久久久久久琪琪| 久久久av网站| 亚洲欧美三级在线| 国产欧美亚洲精品| 日产日韩在线亚洲欧美| 亚洲在线观看视频网站| 美女扒开尿口让男人操亚洲视频网站| 色婷婷综合成人av| 欧洲成人性视频| 欧美激情在线狂野欧美精品| 日本精品一区二区三区在线播放视频| 久久久久久久久久婷婷| 97国产真实伦对白精彩视频8| 午夜精品一区二区三区在线视| 国产午夜精品视频免费不卡69堂| 久久99精品久久久久久青青91| 欧美大片欧美激情性色a∨久久| 日韩成人在线电影网| 亚洲成在人线av| 日韩精品极品视频| 色老头一区二区三区在线观看| 91精品国产91久久久久久吃药| 2021国产精品视频| 色老头一区二区三区| 久久艹在线视频| 91老司机精品视频| 欧美高清激情视频| 欧美日韩亚洲视频一区| 日韩在线资源网| 成人女保姆的销魂服务| 亚洲成年人影院在线| 国产一区二区成人| 亚洲va欧美va在线观看| 亚洲欧洲免费视频| 91精品国产91久久| 日韩日本欧美亚洲| 国产成人午夜视频网址| 亚洲欧美日韩成人| 欧美电影在线观看高清| 红桃视频成人在线观看| 亚洲视频网站在线观看| 日韩精品欧美国产精品忘忧草| 国产精品亚洲第一区| 亚洲欧美国产高清va在线播| 亚洲视频欧洲视频| 韩国精品美女www爽爽爽视频| 欧亚精品在线观看| 在线免费观看羞羞视频一区二区| 国产精品丝袜久久久久久高清| 久久99精品视频一区97| 国产精品视频在线观看| 久久在线精品视频| 国产精品海角社区在线观看| 欧美超级乱淫片喷水| 国产精品男人的天堂| 97久久国产精品| 国产欧美精品va在线观看| 日韩中文视频免费在线观看| 亚洲欧美福利视频| 亚洲黄在线观看| 中文字幕欧美日韩va免费视频| 日韩精品中文在线观看| 日韩在线视频免费观看高清中文| 国产精品入口免费视频一| 欧美国产视频日韩| 亚洲无线码在线一区观看| 亚洲字幕在线观看| 久久久久久国产免费| 国产成人91久久精品| 欧美日韩国产精品| 66m—66摸成人免费视频| 成人福利免费观看| 日韩福利视频在线观看| 久久99精品视频一区97| 欧美日韩亚洲一区二| 91久久久亚洲精品| 九九热视频这里只有精品| 欧美疯狂xxxx大交乱88av| 国产精品久久久久久久久粉嫩av| 久久91超碰青草是什么| 欧美激情videoshd| 超碰日本道色综合久久综合| 国产91在线播放九色快色| 亚洲色图激情小说| 中文字幕欧美日韩va免费视频| 欧美成人精品一区二区| 国产久一一精品| 成人激情春色网| 亚洲社区在线观看| 亚洲影视九九影院在线观看| 黄网站色欧美视频| 国产精品美女午夜av| 国产欧美日韩91| www.精品av.com| 夜夜狂射影院欧美极品| 国产精品海角社区在线观看| 欧美专区在线播放| 国产精品视频999| 成人免费高清完整版在线观看| 亚洲一区免费网站| 日韩在线视频免费观看高清中文| 成人免费自拍视频| 欧美在线一级va免费观看| 成人黄色大片在线免费观看| 欧美综合一区第一页| 国产日韩欧美视频在线| 久久九九亚洲综合| 日韩精品在线视频观看| 亚洲精品国产精品国产自| 久久91亚洲精品中文字幕奶水| 久久视频精品在线| 欧美午夜无遮挡| 在线视频一区二区| 久热在线中文字幕色999舞| 国产精品海角社区在线观看| 91精品国产91久久久| 欧美性xxxx18| 日韩一区二区在线视频| 国产成人涩涩涩视频在线观看| 久久精品久久久久久| 日本欧美国产在线| 国产精品久久久久久久久| 69影院欧美专区视频| 亚洲嫩模很污视频| 成人啪啪免费看| 亚洲激情在线观看视频免费| 一本一本久久a久久精品牛牛影视| 亚洲天堂av电影| 亚洲男人天堂视频| 欧美第一黄网免费网站| 日韩美女激情视频| 国外成人免费在线播放| 97免费视频在线播放| 成人黄色av播放免费| 日韩中文字幕在线精品| 欧美午夜片在线免费观看| 日本人成精品视频在线| 日韩美女在线看| 91av在线视频观看| 日韩精品在线免费观看视频| 久久免费精品视频| 456国产精品| 中文字幕亚洲一区|