VUE2.0 elemenui-ui 2.0.X 封装 省市区三级

qq4535292 2018-02-13 原文

VUE2.0 elemenui-ui 2.0.X 封装 省市区三级

1. 效果图

2. 版本依赖  vue 2.X , elementui  2.0.11  使用element ui  <el-form>标签

 

3. 源码  components/CityList/index

  

<template>
  <el-form ref="form" :model="form" label-width="100px">
    <el-form-item  label="所在地区:">
      <el-cascader v-model="form.selectedOptions" :options="CityInfo" @change="handleChange"
                   :change-on-select="true" :clearable="true"
                   :filterable="true"></el-cascader>
      <!--<span>所选地区:{{ prov }} {{city}} {{area}}</span>-->
    </el-form-item>
  </el-form>
</template>
<script>
  const CityInfo = require('static/city-data.js')
  export default {
    data() {
      return {
        CityInfo: CityInfo['default'],
        form: {
          city: '',
          erae: '',
          minerae: '',
          selectedOptions: []
        }
      }
    },
    methods: {
      handleChange(value) {
        this.form.city = this.form.selectedOptions[0]
        this.form.erae = this.form.selectedOptions[1]
        this.form.minerae = this.form.selectedOptions[2]
        if (this.area) {
          this.$emit('sendCityData', { prov: this.prov, city: this.city, area: this.area })
        }
      }
    },
    computed: {
      prov: function() {
        const Prov = this.form.city
        for (var y in CityInfo['default']) {
          if (CityInfo['default'][y].value === Prov) {
            return CityInfo['default'][y].label
          }
        }
      },
      city: function() {
        const City = this.form.erae
        for (var y in CityInfo['default']) {
          for (var z in CityInfo['default'][y].children) {
            if (CityInfo['default'][y].children[z].value === City && City !== undefined) {
              return CityInfo['default'][y].children[z].label
            }
          }
        }
      },
      area: function() {
        const Area = this.form.minerae
        for (var y in CityInfo['default']) {
          for (var z in CityInfo['default'][y].children) {
            for (var i in CityInfo['default'][y].children[z].children) {
              if (CityInfo['default'][y].children[z].children[i].value === Area && Area !== undefined) {
                return CityInfo['default'][y].children[z].children[i].label
              }
            }
          }
        }
      }
    }
  }
</script>

4. 引入 调用

<template>
        <div>
            <h2>当前从组件传递过来的省市数据:</h2>
            <p>{{CityList}}</p>
            <city-list @sendCityData="getCity"></city-list>
        </div>
    </template>
    <script>
        import CityList from '@/components/CityList/index.vue'
        export default {
            components: { CityList },
            data() {
                return {
                    CityList: ''
                }
            },
            methods: {
                getCity(cityList) {
                    this.CityList = cityList
                }
            }
        }
</script>

5. git地址 https://github.com/IceGogh/vue-components

发表于 2018-02-13 14:09 gogh2017 阅读() 评论() 编辑 收藏

 

版权声明:本文为qq4535292原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qq4535292/p/8446545.html

VUE2.0 elemenui-ui 2.0.X 封装 省市区三级的更多相关文章

  1. Vue2.0 + ElementUI 手写权限管理系统后台模板(一)——简述

    挤一下: 一开始以为没有多少人用就没建群,但是加我的人太多了,好多问题都是重复的,所以建个群大家互相沟通交流方 […]...

  2. Vue2.0 【第一季】第7节 v-bind指令

    Vue2.0 【第一季】 第7节 v-bind指令 目录 Vue2.0 【第一季】 第7节 v-bind指令 […]...

  3. vue2.0 组织机构树形选择组件(类似elementui 与 两个标签的结合)

    vue2.0 组织机构树形选择组件(类似elementui <el-transfer> 与 < […]...

  4. Vue2.0 相对于Vue1.0的变化:生命周期

    1.生命周期 根据提供的生命周期钩子说明Vue.js实例各个阶段的情况,Vue.js 2.0对不少钩子进行了修 […]...

  5. vue2.0 与 vue3.0 配置的区别

    提示:要了解vue2.0与vue3.0区别,首先你要熟悉vue2.0 从最明显最简单的开始 项目目录结构   […]...

  6. vue2.0+ 从插件开发到npm发布

    vue2.0+ 从插件开发到npm发布 vue: V2.5.11 此篇尽量详细,清楚的讲解vue插件的开发到n […]...

  7. VUE 2.0 引入高德地图,自行封装组件

    VUE 2.0 引入高德地图,自行封装组件 1. 高德地图官网 申请帐号, 申请相应(JavaScript A […]...

  8. vue2.0 自定义 下拉刷新和上拉加载更多(Scroller) 组件

    1.下拉刷新和上拉加载更多组件 Scroller.vue <!-- 下拉刷新 上拉加载更多 组件 --& […]...

随机推荐

  1. Stream系列(十二) PartitioningBy方法使用

    分割列表 视频讲解: https://www.bilibili.com/video/av78106120/ E […]...

  2. 三次握手和四次挥手

    1. TCP简介及报文格式 1.1 简介 TCP(Transmission Control Protocol) […]...

  3. 云原生时代 来看看十年前李彦宏、马化腾和马云对云计算的评价

    在容器、Kubernetes、DevOps,以及微服务等技术的推动下,2020年云原生势不可挡。 .NET C […]...

  4. 四足机器人姿态控制(通过IMU)

          先上效果图,webots下仿真,四足机器人在转动平台上保持机身水平。     下面是姿态解算方法和 […]...

  5. 数学 线性筛约数个数和,约数和

    线性筛约数个数和,约数和 一,线性筛约数个数和 ​ 根据唯一分解定理,可得:\[ n=p_1^{r_1}*p_ […]...

  6. 304441事务管理与并发控制

    第10章事务管理与并发控制 •    10.1 事务的基本概念   10.1.1 事务 Ø 事务(Transa […]...

  7. linux查看系统编码和修改系统编码

    1、查看字符编码和语言 使用locale命令,语言是en_US(美式英语),编码是UTF-8 2、修改字符编码 […]...

  8. Python3 与 C# 并发编程之~ 进程先导篇

      Linux专项¶ 先写几个问号来概况下今天准备说的内容:(谜底自己解开,文中都有) 你知道Ctrl+C终止 […]...

展开目录

目录导航