使用element的Cascader级联选择器进行地址三级联动

效果

在这里插入图片描述

源码

<template>
  <el-cascader
    filterable
    clearable
    v-model="address"
    :options="options"
    :props="{ expandTrigger: 'hover', value: 'code', label: 'name', ...props }"
    :size="size"
    :disabled="disabled"
    :placeholder="placeholder"
    @focus="focus"
    @blur="blur"
    @visible-change="visibleChange"
    @input="input"
    @change="change"
  ></el-cascader>
</template>

<script>
/**
 * @author        全易
 * @time          2023-01-09 17:30:41  星期一
 * @description   地址联级选择器
 **/

export default {
  name: "address-cascader",
  props: {
    // 父组件v-model绑定的值
    value: {
      type: Array,
    },
    size: {
      type: String,
      default: "medium",
    },
    disabled: {
      type: Boolean,
      default: false,
    },
    props: {
      type: Object,
    },
    placeholder: {
      type: String,
      default: "",
    },
  },
  data() {
    return {
      address: [],
      options: [],
    };
  },
  created() {
    this.getData();
  },
  watch: {
    // 实时联动父组件传来的值
    value(now, old) {
      console.log(now);
      this.address = now || [];
    },
  },
  methods: {
    getData() {
    // 数据来源:https://download.csdn.net/download/qq_42618566/87377829
      fetch(`/addrTree/address2021.json`)
        .then((res) => {
          return res.json();
        })
        .then((res) => {
          this.options = res;
        });
    },
    blur() {
      this.$emit("blur");
    },
    focus() {
      this.$emit("focus");
    },
    visibleChange(status) {
      // console.log(status);
      this.$emit("visible-change", status);
    },
    // 绑定v-model 实时联动父组件传来的值
    change(value) {
      this.$emit("change", value);
    },
    input(value) {
      this.$emit("input", value);
    },
  },
};
</script>

<style lang="less" scoped></style>

使用指导

<address-cascader v-model="formData.address3" />

address3 是 []

vue封装的通用五级地址联动选择器组件 [拿来即用]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美酒没故事°

谢谢看官

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值