element vue 获取select 的label_vue+elementui实现省市区三级联动
老大喊你起来营业了
醒醒,打工人!开始工作了,今天讲讲我的踩坑记录吧!
这次我们用的是vue-admin-webapp,基于 vue 和 element-ui 采用了最新的前端技术栈来开发一个管理系统。其中,有一个需求要引入腾讯地图做一个省市区三级联动。话不多说,撸起袖子加油干。
腾讯地图
首先,你得注册账号;然后申请密钥(具体操作,自己可以打开腾讯地图官网进行了解)
然后,打开webservice API,这里我们想要的都有;主要用到的就这两个接口:
http://apis.map.qq.com/ws/district/v1/list```
http://apis.map.qq.com/ws/district/v1/getchildren
```
三级联动
我们要实现的三级联动效果应当是:
点击省的时候,对应下拉框出现;当选中的时候,无论后面市和区选了没选,都应当是清空的
当点击市的时候,对应下拉框应该请求对应的内容(这个其实应该在选中省的时候就应该请求);然后选中市,无论后面区选了没选,都应当是清空的
点击区的时候,下拉框的内容其实在选中市的时候已经请求好了
跨域问题
原本我以为我可以了,三级联动也可以了。事实是,我可能想多了!!!这里报了跨域,那么照理说在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实现省市区三级联动相关推荐
- element vue 获取select 的label_Vue动态组件component的深度使用
背景介绍 最近在封装一些基于Vue+ElementUI的组件,将一些实际项目中常用的,有一定规律的业务进行抽象总结,开发出相应的Vue组件. 组件封装 首先想到的就是Form组件,在Element U ...
- vue 实现仿京东、淘宝省市区三级联动
vue 实现仿京东.淘宝省市区三级联动 在做电商或其他项目的时候,物流我们肯定会集成进去,那么我们肯定需要集成地址管理,地址管理除了最基本的省.市.区外,我们还要单独添加一个详细地址字段,不然我们无法 ...
- elementUI之省市区三级联动
element – 省市区三级联动 官方文档地址:https://www.npmjs.com/package/element-china-area-data 1.安装组件依赖 npm install ...
- 省市区三级联动vue elelment
1.vue-cli ,elementUI 实现省市区三级联动 2.DOM <!--地址修改弹框--><el-dialogclass="AddressBoxTY"t ...
- element-ui省市区三级联动:选择即改变
element-ui 省市区三级联动:选择即改变 注意: 阅读本文,经验传授: vue.js单组件引入外部或自定义的 .js文件,并调用文件内三级联动的 json数据: 自定义设置 默认地址,结合js ...
- 一款超好的省市区三级联动插件citypicher的使用(数据分从数据库获取或从js文件获取)
有兴趣的小伙伴,可以继续阅读小编下一篇博客 微服务概述添加链接描述 一篇对SpringCloud的介绍添加链接描述 SpringCloud核心组件详述添加链接描述 一篇对MySQL语句执行顺序的介绍添 ...
- vue实现省市区三级联动地址选择组件
昨天收到一个新的需求,需要选择地址,因此就要做一个省市区三级联动的组件来使用,在网上找了一些资源,然后进行了尝试,没想到就这么成功了!要记录一下方便后续使用. 效果如下: 下面就记录一下代码叭! 一 ...
- vue实现省市区三级联动地址选择
导航 利用select下拉框实现 CV通道 省市区三级json 凑字数 之前由于产品需求,自己去实现了省市区三级联动的选择,但是总感觉有所欠缺,后来花了一点时间整理,特此分享下我的思路,望大佬们指教. ...
- vue——省市区三级联动demo
最近学习vue,想着写一写demo练习练习. 此demo是省市区的三级联动,像这样的场景我们经常看到.我也是刚开始写没有头绪,然后多方查资料. 写此demo时踩过的坑: 1.数据:我们希望后台给我们的 ...
最新文章
- QIIME 2教程. 20实用程序Utilities(2021.2)
- 皮一皮:时代不同了...
- Work From Anywhere
- Node.js 基金会和 JS 基金会准备合并,你怎么看?
- 【软考-软件设计师】计算机体系结构的分类
- php 生成pdf 中文,php采用tcpdf生成pdf支持中文,图片
- Android QQ登录 程序奔溃的问题
- C++中 Vector使用方法
- java Integer 源码学习
- C语言学习笔记-7.函数
- php 跳转到另外一个php,PHP: 其他变更 - Manual
- java多按钮筛选条件_Excel办公技巧:如何对表格数据进行自定义筛选?
- Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)
- 我为什么免费给ipad做了一个大广告?
- 广东计算机考试1级时间安排,1级计算机考试时间
- java基础--ObjectInputStream和ObjectInputStream类
- 使用class-dump 和Hopper实现简单反编译
- GitHub的提醒邮件改进
- 读书笔记: 与爱因斯坦月球漫步-记忆术
- Unity用户手册-IL2CPP
热门文章
- php中如何比较数组和字符串,PHP中数组和字符串的相互转换-PHP数组和字符串互相转换方法-吾爱编程网...
- dann的alpha torch_一图解密AlphaZero(附Pytorch实践)
- 用Python3解析html的几种操作方式,你都会用吗?
- python五种调试或排错的方法
- Python3 操作符重载方法
- Python atexit模块
- 四种高性能数据类型,Python collections助你优化代码、简洁任务
- 华为轮值主席鸿蒙,鸿蒙2.0已开源 华为轮值董事长:今年至少3亿设备搭载鸿蒙系统...
- linux开机自动启动(自启动)脚本、程序(初始化脚本)(海康摄像头自启动程序)
- Windows如何让一个窗口显示最前(窗口锁住最前)?TopMost