vue+webpack+amaze-vue实现省市区联动选择组件
来源:互联网 发布:梦想 知乎 编辑:程序博客网 时间:2024/06/05 20:26
创建工程
创建工程目录 vue-city-picker
使用vue-cli
初始化webpack工程
如果没有安装vue-cli
的同学请走 传送门
在vue-city-picker
同级目录下执行
vue init webpack vue-city-picker
接下来出现的提示可以参考下图
npm安装amaze-vue
cd vue-city-pickernpm npm install amaze-vue --savenpm install
开发准备
启动webpack-dev-server
npm run dev
此时在浏览器中访问http://127.0.0.1:8080/
就可以访问了
整理目录(没有代码洁癖的请自行跳过)
- 删除
src/assets
- 删除
src/components
- 清空
src/App.vue
拷入城市数据
将提示准备好的location.js
文件拷贝到src
目录下。
同学可以根据自己的情况自己拷入城市数据,代码里提供的数据仅供参考。
开始开发
编辑src/main.js
引入amaze-vue组件库
import Vue from 'vue'import App from './App'import AmazeVue from 'amaze-vue';import 'amaze-vue/dist/amaze-vue.css';Vue.config.productionTip = falseVue.use(AmazeVue);/* eslint-disable no-new */new Vue({ el: '#app', template: '<App/>', components: { App }})
编辑src/App.vue
<template> <div class="container"> <section class="city-picker"> <am-select @select="proviceHandle" :options="province" search placeholder="请选择省、直辖市"></am-select> <am-select v-if="city.length > 0" @select="cityHandle" search :options="city" placeholder="请选择市、区"></am-select> <am-select v-if="county.length > 0" @select="countyHandle" search :options="county" placeholder="请选择区、县"></am-select> </section> <p v-if="address">您选择的是:<span class="am-text-success">{{ address }}</span></p> </div></template><script> import locationData from './location'; export default { name: 'city-picker', data() { const province = []; for (let code in locationData) { let item = locationData[code]; province.push(Object.assign(item, { label: item.name })); } return { province, city: [], county: [], selectProvince: null, selectCity: null, selectCounty: null }; }, methods: { proviceHandle(value) { const city = []; for (let code in value.cities) { let item = value.cities[code]; city.push(Object.assign(item, { label: item.name })); } this.city = city; this.county = []; this.selectProvince = value.name; this.selectCity = null; this.selectCounty = null; }, cityHandle(value) { const county = []; for (let code in value.districts) { let item = value.districts[code]; county.push({ code, label: item, name: item }); } this.county = county; this.selectCity = value.name; this.selectCounty = null; }, countyHandle(value) { this.selectCounty = value.name; } }, computed: { address() { const { selectProvince, selectCity, selectCounty } = this; return (selectProvince ? selectProvince : '') + (selectCity ? ',' + selectCity : '') + (selectCounty ? ',' + selectCounty : ''); } } }</script><style> .container { width: 800px; height: 800px; padding-top: 80px; margin: auto; } .city-picker { margin-bottom: 20px; }</style>
实现效果
效果图
代码
https://github.com/sunshineJi/vue-city-picker
使用方法
git clone https://github.com/sunshineJi/vue-city-picker.gitcd vue-city-pickernpm inpm run dev
提示
此demo只是提供一个思路去解决联动选择的问题,线上需求还请使用的同学根据具体情况优化代码后使用。
广告ಠ౪ಠ
amaze-vue是一只基于amazeui 和 vue.js的响应式组件库,项目刚刚起步,希望大家多多支持。
项目地址
amaze-vue
使用文档
document
阅读全文
0 0
- vue+webpack+amaze-vue实现省市区联动选择组件
- vue仿京东省市区三级联动选择组件
- vue 实现省市区三级联动
- vue省市区三联动下拉选择组件的实现
- vue省市区联动插件---distpicker
- 利用webpack和vue实现组件化
- 利用webpack和vue实现组件化
- vue+webpack实现异步组件加载
- 初探 amaze-vue( 基于vue.js封装的Amaze UI 组件库)
- vue---vue2.x中如何异步加载路由组件,webpack+vue实现组件懒加载
- Vue如何使用vue-area-linkage实现地址三级联动效果 很多时候我们需要使用地址三级联动,即省市区三级联动。网上有很多插件,在此介绍Vue的一款地区联动插件:vue-ar
- VUE+WebPack前端游戏设计:依赖VUE组件通讯机制实现场景游戏切换
- vue.js+webpack 实现模块化
- vue+mint ui+省市区三级联动(编辑地址)
- vue省市区三级联动mysql,js/json,html/jsp
- vue + webpack
- Vue.js 实现省市联动
- Vue.js 实现省市联动
- html5知识整理
- Course Schedule(leetcode 207)
- ASCII和各种进制之间的转换
- 浅谈android数据存储加密
- DxO FilmPack Elite V5.5.15特别版 | 模拟各种照片胶卷效果下载 | dxo filmpack 激活码
- vue+webpack+amaze-vue实现省市区联动选择组件
- (转载)python学习——h5py快速指南
- 微信支付发送HTTPS请求的并且解析返回的结果
- java定时器的几种实现方式
- 策略模式浅析
- 利用ajaxSubmit无刷新异步上传导入Excel,无刷新提交表单
- A
- Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)
- MySQL索引使用方法和性能优化