Vue级联下拉框怎么实现

今天小编给大家分享一下Vue级联下拉框怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

创新互联是一家专业的成都网站建设公司,我们专注成都网站制作、成都网站设计、外贸营销网站建设、网络营销、企业网站建设,买友情链接广告投放为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

1.数据库设计

所有的相关数据皆可存在一张表中,这样数据就可以不受层级的限制。

表结构可以参考如下建表SQL:

CREATE TABLE `supplies_type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_type` varchar(64) NOT NULL COMMENT "类别种类:大类、中类、小类",
  `big_category_name` varchar(64) NOT NULL COMMENT "大类名称",
  `middle_category_name` varchar(64) DEFAULT NULL COMMENT "中类名称",
  `small_category_name` varchar(64) DEFAULT NULL COMMENT "小类名称",
  `parent_id` int(11) DEFAULT NULL,
  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `create_user_name` varchar(64) DEFAULT NULL COMMENT "创建人用户名",
  `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `is_deleted` tinyint(1) DEFAULT "0" COMMENT "是否删除,1表示已删除",
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

数据库截图如下图所示,注:本系统为了减少查询次数,故冗余了一些字段,读者可根据自己的需求调整。

Vue级联下拉框怎么实现

核心设计在于parent_id,根据parent_id字段即可查询到子类,结果如下图所示:

Vue级联下拉框怎么实现

Vue级联下拉框怎么实现

2.前端页面

前端页面效果如下:

Vue级联下拉框怎么实现

Html代码如下:


    大类:
    
      
      
    
    中类:
    
      
      
    
    
    
    
    小类:                        

上面的item.smallCategoryName、item.smallCategoryName数据为后端从数据库中查询出来的数据(驼峰命名),后端只负责查询、并返回结果。

Vue中数据定义如下:

data() {
    return {
        big: "",
        bigTypes: null,
        middle: "",
        middleTypes: null,
        small: "",
        smallTypes: null
    }
},

在页面初始化时,自动获取大类列表:

created() {
		this.getSuppliesType(0)
},

页面中的getSuppliesType方法如下:

getSuppliesType(id) {
  this.listLoading = true
  const queryData = {
    parentId: id
  }
  //此处的调用后端接口按照自己的调用方式写即可
  //此处的getSuppliersType是项目中自己封装的util中的方法
  //如果请求方式是post,JSON.stringify(queryData)
  //如果请求方式是get,queryData
  getSuppliersType(JSON.stringify(queryData)).then(response => {
    console.log(response)
    console.log(response.data[0].categoryType)
    //根据type自动向三个下拉框赋值
    if (response.data[0].categoryType === "BIG") {
      this.bigTypes = response.data
    } else if (response.data[0].categoryType === "MIDDLE") {
      this.middleTypes = response.data
    } else {
      this.smallTypes = response.data
    }
    this.listLoading = false
  }).catch(function (error) {
    console.log(error)
    this.listLoading = false
  })
},

3.一个完整的demo

下面这个页面为完成代码,其中的数据为部分数据,后台接口获取使用JS来完成。



以上就是“Vue级联下拉框怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


网页题目:Vue级联下拉框怎么实现
文章出自:http://myzitong.com/article/popgco.html

其他资讯