我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue如何实现省市区三级联动el-select组件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue如何实现省市区三级联动el-select组件

这篇文章主要介绍“Vue如何实现省市区三级联动el-select组件”,在日常操作中,相信很多人在Vue如何实现省市区三级联动el-select组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue如何实现省市区三级联动el-select组件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一 自定义组件

1 位置

Vue如何实现省市区三级联动el-select组件

2 代码

<template>  <div class="areaSelect flex">    <!-- 省选择框 -->    <el-select      filterable      :disabled="disabled"      v-model="province"      :size="size"      placeholder="省"      @change="changeCode($event,0)">      <el-option        v-for="item in provinceList"        :key="item.value"        :label="item.label"        :value="item.value">      </el-option>    </el-select>    <!-- 市选择框 -->    <el-select      filterable      :disabled="disabled"      class="center_select"      v-model="city"      placeholder="市"      @change="changeCode($event,1)">      <el-option        v-for="item in cityList"        :key="item.value"        :label="item.label"        :value="item.value">      </el-option>    </el-select>    <!-- 区选择框 -->    <el-select      filterable      :disabled="disabled"      v-model="area"      placeholder="区"      @change="changeCode($event,2)">      <el-option        v-for="item in areaList"        :key="item.value"        :label="item.label"        :value="item.value">      </el-option>    </el-select>  </div></template><script>  export default {    name: 'regionSelect',    props: {      size: '',      disabled: {        size: String,        type: Boolean,        default: false      },      code: {        type: Object,        default: () => {          return {            areaCode: '',            areaName: '',            cityCode: '',            cityName: '',            provinceCode: '',            provinceName: ''          }        }      }    },    data () {      return {        province: '',        city: '',        area: '',        provinceList: [],        cityList: [],        areaList: []      }    },    watch: {      code (val) {        if (val.areaName && val.areaName !== '') {          this.province = val.provinceCode          this.city = val.cityCode          this.area = val.areaCode          this.provinceCity(val.provinceCode)          this.cityArea(val.cityCode)        } else {          this.cityList = []          this.areaList = []        }      }    },    mounted () {      if (this.code.areaName && this.code.areaName !== '') {        this.province = this.code.provinceCode        this.city = this.code.cityCode        this.area = this.code.areaCode        this.provinceCity(this.code.provinceCode)        this.cityArea(this.code.cityCode)      }      this.getProvince()    },    methods: {      resetArea () {        this.province = ''        this.city = ''        this.area = ''      },      // 当 type == 0 ,data 表示省编码      // 当 type == 1 ,data 表示市编码      changeCode (data, type) {        if (type === 0) {          this.city = ''          this.area = ''          this.provinceCity(data)        }        if (type === 1) {          this.area = ''          this.cityArea(data)        }        if (this.province !== '' && this.city !== '' && this.area !== '') {          this.$emit(            'code', [{              code: this.province,              name: this.provinceList.find(                (val) => val.value === this.province              ).label            }, {              code: this.city,              name: this.cityList.find(                (val) => val.value === this.city              ).label            }, {              code: this.area,              name: this.areaList.find(                (val) => val.value === this.area              ).label            }]          )        }      },      // 从后台获得省数据列表      async getProvince () {        let result = []        let url = '/base/division/provinceList'        let data = await this.$http.get(url)        data.data.data.map((item) => {          result.push({            label: item.name,            value: item.code          })        })        this.provinceList = result      },      // 依据省编码获得市数据列表      async provinceCity (code) {        let result = []        let url = '/base/division/cityList'        let data = await this.$http({          url: url,          method: 'get',          params: {            provinceCode: code          }        })          data.data.data.map((item) => {          result.push({            label: item.name,            value: item.code          })        })        this.cityList = result      },      // 依据市编码获得区数据列表      async cityArea (code) {        let url = '/base/division/districtList'        let data = await this.$http({          url: url,          method: 'get',          params: {            cityCode: code          }        })        let result = []        data.data.data.map((item) => {          result.push({            label: item.name,            value: item.code          })        })        this.areaList = result      }    }  }</script><style>  .center_select {    margin: 0 10px;  }    .global_form .areaSelect {    width: 70%;  }    .global_form .areaSelect .el-select {    width: 33.33%;  }</style>

二 main.js 配置

// 行政区划三级选择import RegionSelect from './components/regionSelect'// 行政区划三级选择Vue.use(RegionSelect)// 行政区划三级选择Vue.component('regionSelect', RegionSelect)

三 使用方法

1 结构部分

<regionSelect  :code="item.value"  :disabled="item.disabled"  :size="layout.size"  @code="changeCode($event,item.prop)"  v-if="item.type==='region'"  ref="selectArea"></regionSelect>

2 代码部分

searchForm: {  province: '', // 省  city: '', // 市  district: '' // 区},item: { // 省市区 select 自定义组件传参部分  value: '',  type: 'region',  disabled: false},layout: { // 选择框样式,用于传参  size: ''},

3 样式部分

// 省市区选择框改变时,传递出来已选择的值changeCode (data, prop) {  this.searchForm.province = data[0].name  this.searchForm.city = data[1].name  this.searchForm.district = data[2].name},// 重置选择框resetForm () {  this.$refs.selectArea[0].resetArea()  // 清除省市区}

四 测试

1 级联选择

Vue如何实现省市区三级联动el-select组件

2 观察数据

Vue如何实现省市区三级联动el-select组件

到此,关于“Vue如何实现省市区三级联动el-select组件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue如何实现省市区三级联动el-select组件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue如何实现省市区三级联动el-select组件

这篇文章主要介绍“Vue如何实现省市区三级联动el-select组件”,在日常操作中,相信很多人在Vue如何实现省市区三级联动el-select组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue如何实现
2023-07-05

Ajax如何实现省市区三级级联

这篇文章主要介绍Ajax如何实现省市区三级级联,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现Ajax实现省市区三级级联,需要Java解析json技术 整体Demo下载地址如下: 点我下载address.html<
2023-06-08

利用级联选择器实现省市区三级联动【vue + elementUI Plus | uViewUI】

文章目录 准备数据vue + ElementUI Plus 利用级联选择器实现省市区三级联动学习记录具体代码 vue + uViewUI 利用选择器多列联动实现省市区三级联动 (uniapp学习记录具体代码 准备数据
2023-08-19

Vue使用distpicker插件实现省市级下拉框三级联动

这篇文章主要介绍了Vue使用distpicker插件实现省市级下拉框三级联动,比如通过JSON文件生成对应的区域下拉框,element-china-are插件,包括distpicker插件,通过代码讲解如何使用distpicker插件实现省市级三联跳动,需要的朋友可以参考下
2023-02-22

ajax如何实现无刷新省市县三级联动

这篇文章主要介绍“ajax如何实现无刷新省市县三级联动”,在日常操作中,相信很多人在ajax如何实现无刷新省市县三级联动问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax如何实现无刷新省市县三级联动”的疑
2023-06-08

Vue如何实现省市区级联下拉选择框

这篇文章将为大家详细讲解有关Vue如何实现省市区级联下拉选择框,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下以(Vue下拉选择框Select组件二)为基础实现省市区级联下拉选择框组件(业务需要
2023-06-29

Vue怎么使用distpicker插件实现省市级下拉框三级联动

本篇内容介绍了“Vue怎么使用distpicker插件实现省市级下拉框三级联动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装distpi
2023-07-05

Android省市区三级联动控件使用方法实例讲解

最近有需求需要实现省市区三级联动,但是发现之前的实现不够灵活,自己做了一些优化。为了方便以后使用,抽离出来放在了github上WheelView。同时把其核心库放在了JCenter中了,可以直接引用。也可以参考项目中的Demo进行引用下面介
2022-06-06

vue基于element-china-area-data插件怎么实现省市区联动

本篇内容主要讲解“vue基于element-china-area-data插件怎么实现省市区联动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue基于element-china-area-da
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录