老大喊你起来营业了

醒醒,打工人!开始工作了,今天讲讲我的踩坑记录吧!

这次我们用的是vue-admin-webapp,基于 vue 和 element-ui 采用了最新的前端技术栈来开发一个管理系统。其中,有一个需求要引入腾讯地图做一个省市区三级联动。话不多说,撸起袖子加油干。

腾讯地图

  1. 首先,你得注册账号;然后申请密钥(具体操作,自己可以打开腾讯地图官网进行了解)

  2. 然后,打开webservice API,这里我们想要的都有;主要用到的就这两个接口:
    http://apis.map.qq.com/ws/district/v1/list```
    http://apis.map.qq.com/ws/district/v1/getchildren
    ```

三级联动

我们要实现的三级联动效果应当是:

  1. 点击省的时候,对应下拉框出现;当选中的时候,无论后面市和区选了没选,都应当是清空的

  2. 当点击市的时候,对应下拉框应该请求对应的内容(这个其实应该在选中省的时候就应该请求);然后选中市,无论后面区选了没选,都应当是清空的

  3. 点击区的时候,下拉框的内容其实在选中市的时候已经请求好了

跨域问题

原本我以为我可以了,三级联动也可以了。事实是,我可能想多了!!!这里报了跨域,那么照理说在vue.config.js中配置一下应该是可以的

1.先在vue.config.js中配置了一下

proxy: {

//名字可以自定义,用于指定哪些请求需要被 target 对应的主机代理

'/map': {

target: 'https://apis.map.qq.com',

changeOrigin: true, //这里设置是否跨域

pathRewrite: { // 路径重写

'^/map': ''

},

}

2.再在.env.development环境中配置一下

VUE_APP_BASE_API2 = '/map'

3.如果不行的话可以用这个jsonp,先全局安装,然后npm i vue-jsonp -S;再在main.js中全局引入import { VueJsonp } from ‘vue-jsonp’
Vue.use(VueJsonp)
在页面中直接,如下所示,就可以了

this.$jsonp(process.env.VUE_APP_BASE_API2+'/ws/district/v1/list',{

key:'yourkey',

output:'jsonp'

}).then(res => {

console.log(res)

// let data = res.data.result

// this.cityList = data[0]

// this.countryList = []

// this.loading = false

}).catch(err => {

console.log(err)

})

开发ing

1.在页面中引入 import axios from “axios”;
2.直接用的elementui里面的select选择器

:model="editForm" :rules="editRules" ref="editForm" style="width: 100%" >

prop="kitchenAddress"

label="地域:"

:label-width="formLabelWidth"

>

v-model="editForm.province"

@change="chooseProvince"

:loading = "loading"

placeholder="请选择省"

size="small"

style="width:100px"

>

v-for="item in provinceList"

:key="item.id"

:label="item.fullname"

:value="item.id"

>

v-model="editForm.city"

@change="chooseCity"

ref="city"

:loading = "loading"

placeholder="请选择市"

size="small"

style="width:100px"

>

v-for="item in cityList"

:key="item.id"

:label="item.fullname"

:value="item.id"

>

v-model="editForm.country"

@change="chooseCountry"

ref="country"

:loading = "loading"

placeholder="请选择区"

size="small"

style="width:100px"

>

v-for="item in countryList"

:key="item.id"

:label="item.fullname"

:value="item.id"

>

3.开始获取省市区列表 这里yourkey指的是你自己申请的key

getProvince(){

axios.get(process.env.VUE_APP_BASE_API2+'/ws/district/v1/list?key=yourkey')

.then(res => {

this.loading = true;

let data = res.data.result

this.provinceList = data[0]

this.loading = false

}).catch(err => {

console.log(err)

})

}

根据省id来获取市的列表

chooseProvince(e){

this.$set(this.editForm,"city")

this.$set(this.editForm,"country")

let provinceId = e

this.loading = true

if(!!provinceId){

axios.get(process.env.VUE_APP_BASE_API2+'/ws/district/v1/getchildren?key=yourkey&id='+provinceId)

.then(res => {

let data = res.data.result

this.cityList = data[0]

this.countryList = []

this.loading = false

}).catch(err => {

console.log(err)

})

}

}

根据市id获取区列表

chooseCity(id){

let cityId = id

this.loading = true

this.$set(this.editForm,"country")

if(!!cityId){

axios.get(process.env.VUE_APP_BASE_API2+'/ws/district/v1/getchildren?key=yourkey&id='+cityId)

.then(res => {

let data = res.data.result

this.loading = false

this.countryList = data[0]

}).catch(err => {

console.log(err)

})

}

}

element vue 获取select 的label_vue+elementui实现省市区三级联动相关推荐

  1. element vue 获取select 的label_Vue动态组件component的深度使用

    背景介绍 最近在封装一些基于Vue+ElementUI的组件,将一些实际项目中常用的,有一定规律的业务进行抽象总结,开发出相应的Vue组件. 组件封装 首先想到的就是Form组件,在Element U ...

  2. vue 实现仿京东、淘宝省市区三级联动

    vue 实现仿京东.淘宝省市区三级联动 在做电商或其他项目的时候,物流我们肯定会集成进去,那么我们肯定需要集成地址管理,地址管理除了最基本的省.市.区外,我们还要单独添加一个详细地址字段,不然我们无法 ...

  3. elementUI之省市区三级联动

    element – 省市区三级联动 官方文档地址:https://www.npmjs.com/package/element-china-area-data 1.安装组件依赖 npm install ...

  4. 省市区三级联动vue elelment

    1.vue-cli ,elementUI 实现省市区三级联动 2.DOM <!--地址修改弹框--><el-dialogclass="AddressBoxTY"t ...

  5. element-ui省市区三级联动:选择即改变

    element-ui 省市区三级联动:选择即改变 注意: 阅读本文,经验传授: vue.js单组件引入外部或自定义的 .js文件,并调用文件内三级联动的 json数据: 自定义设置 默认地址,结合js ...

  6. 一款超好的省市区三级联动插件citypicher的使用(数据分从数据库获取或从js文件获取)

    有兴趣的小伙伴,可以继续阅读小编下一篇博客 微服务概述添加链接描述 一篇对SpringCloud的介绍添加链接描述 SpringCloud核心组件详述添加链接描述 一篇对MySQL语句执行顺序的介绍添 ...

  7. vue实现省市区三级联动地址选择组件

    昨天收到一个新的需求,需要选择地址,因此就要做一个省市区三级联动的组件来使用,在网上找了一些资源,然后进行了尝试,没想到就这么成功了!要记录一下方便后续使用. 效果如下:  下面就记录一下代码叭! 一 ...

  8. vue实现省市区三级联动地址选择

    导航 利用select下拉框实现 CV通道 省市区三级json 凑字数 之前由于产品需求,自己去实现了省市区三级联动的选择,但是总感觉有所欠缺,后来花了一点时间整理,特此分享下我的思路,望大佬们指教. ...

  9. vue——省市区三级联动demo

    最近学习vue,想着写一写demo练习练习. 此demo是省市区的三级联动,像这样的场景我们经常看到.我也是刚开始写没有头绪,然后多方查资料. 写此demo时踩过的坑: 1.数据:我们希望后台给我们的 ...

最新文章

  1. QIIME 2教程. 20实用程序Utilities(2021.2)
  2. 皮一皮:时代不同了...
  3. Work From Anywhere
  4. Node.js 基金会和 JS 基金会准备合并,你怎么看?
  5. 【软考-软件设计师】计算机体系结构的分类
  6. php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片
  7. Android QQ登录 程序奔溃的问题
  8. C++中 Vector使用方法
  9. java Integer 源码学习
  10. C语言学习笔记-7.函数
  11. php 跳转到另外一个php,PHP: 其他变更 - Manual
  12. java多按钮筛选条件_Excel办公技巧:如何对表格数据进行自定义筛选?
  13. Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)
  14. 我为什么免费给ipad做了一个大广告?
  15. 广东计算机考试1级时间安排,1级计算机考试时间
  16. java基础--ObjectInputStream和ObjectInputStream类
  17. 使用class-dump 和Hopper实现简单反编译
  18. GitHub的提醒邮件改进
  19. 读书笔记: 与爱因斯坦月球漫步-记忆术
  20. Unity用户手册-IL2CPP

热门文章

  1. php中如何比较数组和字符串,PHP中数组和字符串的相互转换-PHP数组和字符串互相转换方法-吾爱编程网...
  2. dann的alpha torch_一图解密AlphaZero(附Pytorch实践)
  3. 用Python3解析html的几种操作方式,你都会用吗?
  4. python五种调试或排错的方法
  5. Python3 操作符重载方法
  6. Python atexit模块
  7. 四种高性能数据类型,Python collections助你优化代码、简洁任务
  8. 华为轮值主席鸿蒙,鸿蒙2.0已开源 华为轮值董事长:今年至少3亿设备搭载鸿蒙系统...
  9. linux开机自动启动(自启动)脚本、程序(初始化脚本)(海康摄像头自启动程序)
  10. Windows如何让一个窗口显示最前(窗口锁住最前)?TopMost