用Vue、element-ui、axios实现省市区三级联动

本文详细介绍了如何结合Vue.js、element-ui的联动组件和axios,实现省市区的三级联动效果。首先,通过element-ui设置联动组件,并配置相应的选项。接着,利用axios获取数据并实现懒加载。此外,还提到了一种封装模块的方法,只需全局引用组件并在父组件传参即可达到相同效果。
摘要由CSDN通过智能技术生成

用Vue、element-ui、axios实现省市区三级联动
第一步使用element-ui的联动组件
在这里插入图片描述
第二步 配置选项
在这里插入图片描述
第三步使用懒加载调
在这里插入图片描述
第二种组态的封装模块

<template>
  <div class="area-select-main">
    <el-cascader
      clearable
      v-model="areaId"
      :options="initOptions"
      :key="isResouceShow"
      :props="props"
      @change="getAreaId"
      ref="areaCascader"
      :show-all-levels="showAllLevels"
      :placeholder="placeholder"
    >
    </el-cascader>
  </div>
</template>

<script>
export default {
  name: 'areaSelect',
  data () {
    const self = this
    return {
      areaId: [],
      lazyApiArray: [],
      isResouceShow: 0,
      placeholder: '请选择归属地',
      oldLevel: null,
      oldValue: null,
      props: {
        lazy: true,
        checkStrictly: self.checkStrictly,
        label: 'name',
        value: 'id',
        children: 'children',
        lazyLoad (node, resolve) {
          if (!node.path || node.children.length) {
            resolve([])
            return
          }
          // 避免多次进lazyLoad方法时重复调接口的问题
          if (self.oldValue === node.value && self.oldLevel === node.level) {
            resolve([])
            return
          }
          self.oldValue = node.value
          self.oldLevel = node.level
          let apis = ['GetCityDic', 'GetDistrictDic', 'GetStreetDic', 'GetCommunityDic']
          if (self.initValue.length > 0 && self.type === 2) { // 懒加载调用接口顺序不一定总从city开始,与新增框默认的归属地有关
            apis = self.lazyApiArray
          }
          const idArr = node.path
          let api = ''
          const parentId = idArr[idArr.length - 1]
          let leafMark = false
          if (idArr.length === self.level - 1) {
            leafMark = true
          }
          if
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值