软件系统开发定制使用vue elementUI设置省市县三级联动的下拉列表框

在开发中,软件系统开发定制经常会遇到省市县三级软件系统开发定制联动的下拉列表框组的问题,软件系统开发定制分享以下实现方法,软件系统开发定制以下内容为具体的实现过程:

1.软件系统开发定制静态页面组件搭建:使用elementUI的form表单,并做一下基本的修改,得到以下结果:

2.然后是组件的数据配置:

表单的基本数据存放在form对象里面,至于省市县三个下拉菜单的数据,则以数组的形式存放,分别为provinceList[];cityList[];countyListp[]。

3.接下来处理重点数据:三级下拉菜单的联动:

3.1点击省下拉菜单获取省份:

 主要技术点在于:通过调取高德地图的API接口,获取全国省市县行政区划:

在调用高德地图api之前, 须先在高德开放平台注册个人账户并申请对应的密钥,以下内容为申请个人账户和密钥的详细过程:

1.首先进入高德开放平台官网,进行账号注册登录,登录后,点击右上角的控制台区域

2.进入控制台页面后,选择:应用管理—我的应用:

 3.点击添加按钮:如下图:

4. 进行如图所示的配置:key名称自定义,用于进行账号区分,服务平台格局自身需要选择,这里默认选择Web服务,然后勾选用户协议,并提交。如下图:

5.创建好应用后,点击对应应用列表的设置选项:如图:

 6.选择行政区划查询api:如图:

 7.进入这个行政区划api的使用方法教程如图:

8. api的相关请求参数:

 接下来,就可以进行这个api的调用了:

按照官网的教程,进行本地的获取行政区划的接口api的请求,如下代码所示:

  1. this.$http({
  2. method:"get",
  3. url:"https://restapi.amap.com/v3/config/district?parameters", // apii请求地址
  4. params:{ // 携带的参数
  5. key:"3a708a4ef5e3af28694b1c861985a5ce", // 在高德开放平台申请的个人key密钥
  6. keyWords:"中国",
  7. subdistrict:3 // 要获取的行政区划的级别:省、市、县三级
  8. }
  9. }).then((res)=>{
  10. this.form.provinceList = res.data.districts[0].districts /* 省*/
  11. /* 进行遍历赋值*/
  12. /* 市区和县区*/
  13. let newProvince = this.form.provinceList
  14. for(let i = 0; i < newProvince.length; i++){ /* 省级*/
  15. for(let j = 0; j < newProvince[i].districts.length; j++){ /* 市级*/
  16. let city = newProvince[i].districts[j].name
  17. this.CITY.push({id:j+1,name:city,code:i+1})
  18. for(let k = 0;k<newProvince[i].districts[j].districts.length; k++){/* 县级*/
  19. let xian = newProvince[i].districts[j].districts[k].name
  20. this.XIAN.push({id:k+1,name:xian,code:j+1,cityCountyName:city})
  21. }
  22. }
  23. }
  24. for(let m = 0; m < newProvince.length;m++){
  25. newProvince[m] = {...newProvince[m],...{code:m+1}}
  26. }
  27. this.form.provinceList = newProvince
  28. })

上述代码的作用:在 获取高德地图提供的行政区划后,对这些行政区划树进行初始化,主要是给选各个省份匹配其对应的市和县级行政区。

接下来的操作就是点击选择省份就可以获取其对应的 市级行政区,点击选择市级下拉菜单就可以获取其对应的县级行政区,代码如下:

根据选中省,匹配市:

  1. provinceChange(that){
  2. // 根据选中省,匹配市
  3. let cityCode = 0
  4. let newCityArry = []
  5. this.form.provinceList.forEach((item,index)=>{
  6. if(item.name == that){
  7. cityCode = item.code
  8. }
  9. })
  10. // console.log(cityCode)
  11. if(cityCode){
  12. this.form.cityList = []
  13. this.CITY.forEach((item,index)=>{
  14. if(item.code == cityCode){
  15. this.form.cityList.push(item)
  16. }
  17. }) /* 市匹配成功*/
  18. }
  19. },

 // 根据市区,匹配县区

  1. cityChange(that){
  2. let countyCode = 0
  3. let cityname = ''
  4. let newCountyArry = []
  5. this.form.cityList.forEach((item,index)=>{
  6. if(item.name == that){
  7. countyCode = item.id
  8. cityname = item.name
  9. }
  10. })
  11. if(countyCode){
  12. this.form.countyList = []
  13. this.XIAN.forEach((item,index)=>{
  14. if(item.code == countyCode && item.cityCountyName == cityname){
  15. this.form.countyList.push(item)
  16. }
  17. })
  18. }
  19. },

做了这些程序配置后,就可以实现三级下拉菜单的联动了。效果图如下

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发