element-ui中el-cascader组件进行省市区的选择

2,094 阅读1分钟

element-ui如何使用el-cascader进行省市区的选择

效果图

d432f4adcf124dc394266e1ab37195a6.gif

1、下载安装 npm install element-china-area-data -S

2、封装 省市区级联cascader组件

<template>
  <div>
    <el-cascader style="width: 100%;" :options="options" v-model="value1" @change="handleChange" filterable
      :props="{value:'label'}" placeholder="省/市/区"></el-cascader>
  </div>
</template>

<script>
 // 引入省市区数据包
  import {
    regionData
  } from 'element-china-area-data'
  export default {
    name: "cascader",
    props: ['value'],
    data() {
      return {
        options: regionData,
        selectedOptions: []
      }
    },
    computed: {
      value1: {
        set(val) {
          this.$emit("input", val)
        },
        get(val) {
          return this.value
        }
      }
    },
    methods: {
      handleChange(value) {
        this.$emit('provincesValueChang', value)
      }
    }
  }

</script>

3、使用组件

<template>
        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
            <el-form-item label="省/市/区" prop="area">
              <cascader
                @provincesValueChang="provincesValueChang"
                :value="[form.province, form.city, form.area]"
                @update:value="form.region = $event"
                style="width: 100%"
              ></cascader>
             </el-form-item>
        </el-form>
</template>
<script>
    import cascader from "@/components/cascader";
    export default {
        name: "Demo",
        components: {
            cascader,
          },
        data() {
          return {
              // 表单参数
              form: {},
              rules:{}
            }
         }
        methods: {
            // 省市区
            provincesValueChang(value) {
              this.form.province = value[0];
              this.form.city = value[1];
              this.form.area = value[2];
            },
        }
    }
</script>