Vue+Element-UI 如何展示Json文件中的数据

今天在写代码的过程中,想要从Json文件中读取省、市、区的信息,再分别展示到下拉框中,所以想要分享一下自己写的过程和较好的实现方法。

1 思路一

json数据:

 [
 {

    "zoneId": 459,
    "code": "210000",
    "parentId": "0",
    "name": "辽宁省",
    "children": [
      {

        "zoneId": 460,
        "code": "210100",
        "parentId": "210000",
        "name": "沈阳市",
        "children": [
          {

            "zoneId": 461,
            "code": "210102",
            "parentId": "210100",
            "name": "和平区"
          },
          {

            "zoneId": 462,
            "code": "210103",
            "parentId": "210100",
            "name": "沈河区"
          },
          {

            "zoneId": 463,
            "code": "210104",
            "parentId": "210100",
            "name": "大东区"
          },
          {

            "zoneId": 464,
            "code": "210105",
            "parentId": "210100",
            "name": "皇姑区"
          },
          {

            "zoneId": 465,
            "code": "210106",
            "parentId": "210100",
            "name": "铁西区"
          },
          {

            "zoneId": 466,
            "code": "210111",
            "parentId": "210100",
            "name": "苏家屯区"
          },
          {

            "zoneId": 467,
            "code": "210112",
            "parentId": "210100",
            "name": "浑南区"
          },
          {

            "zoneId": 468,
            "code": "210113",
            "parentId": "210100",
            "name": "沈北新区"
          },
          {

            "zoneId": 469,
            "code": "210114",
            "parentId": "210100",
            "name": "于洪区"
          },
          {

            "zoneId": 470,
            "code": "210115",
            "parentId": "210100",
            "name": "辽中区"
          },
          {

            "zoneId": 471,
            "code": "210123",
            "parentId": "210100",
            "name": "康平县"
          },
          {

            "zoneId": 472,
            "code": "210124",
            "parentId": "210100",
            "name": "法库县"
          },
          {

            "zoneId": 473,
            "code": "210181",
            "parentId": "210100",
            "name": "新民市"
          }
        ]
      },
]

读取json数据,使用require方法,在这就不多介绍这个方法了,将读取的数据赋给provinceOptions

一开始是只想在标签上面做文章,嵌套标签

          
            
                
                
            
          

缺点:但是发现这样的话,我只能嵌套两层,无法展示出区这一信息。还有一个需求就是我们需要实现联动的效果 ==> 就是当选择某一个省的时候,在对应的市的下拉框中可以实现这个省对应的所有市的信息,以供选择,以此类推区/县…

但是我想了一下,基于上述的思路,我可以加个if判断来实现联动。

                
                

但是最重要的问题还是没有解决,就是展示出区的信息,所以就有了思路二

2 思路二

就是可以给省、市的下拉框标签分别加上@change方法

          
            
            
          
        

        
          
            
            
          
        
        
          
            
            
          
        
data() {
    return {
        districtOptions: [],
        cityOptions: [],
        provinceOptions: [],
    }
},


methods: {
    handleProvinceChange() {
      let province
      for (const item of this.provinceOptions) {
        if(item.name === this.form.province) {
          province = item
          break
        }
      }
      this.cityOptions = province ? province.children : []

      // 触发这个方法时,需要将市和区清空,
      this.form.city = ''
      this.form.district = ''
    },

    
    handleCityChange() {
      let city
      for (const item1 of this.cityOptions) {
        if(item1.name === this.form.city) {
          city = item1
          break
        }
      }

      this.districtOptions = city ? city.children : []
      this.form.collegeDistrict = ''

    }
}

        上述内容,是自己的一些想法和思考的过程,希望能够对你有些帮助!

Vue+Element-UI 如何展示Json文件中的数据

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/f1c4cabc7a.html