Ant Cascader 级联选择 三级

Cascader 级联选择 动态加载数据

在这里插入图片描述

   <a-cascader
    :load-data="loadCityData"
    v-model:value="value"
    :options="Provinces"
    placeholder="Please select"
    change-on-select
    @change="changeProvinces"
   />
   
<script>
const Provinces = []
export default {
  data() {
    return {
      value: [],
      Provinces, // 省市区
    }
  },
  async created() {
    await this.CityData()
  },
  methods: {
    // 初始省市区数据
    async CityData() {
      const CityData = await this.ProvincesData(1)
      CityData.map((item) => {
        const { provinceName, regionalId } = item
        this.Provinces.push({
          value: regionalId,
          label: provinceName,
          isLeaf: false,
        })
      })
    },
    // 省市区数据请求
    async ProvincesData(Id) {
      let Dataresult
      await this.$http({
        url: this.$http.adornUrl('/task/getRegions'),
        method: 'post',
        params: this.$http.adornParams({
          parentId: Id,
        }),
      }).then(({ data }) => {
        console.log(data)
        if (data) {
          Dataresult = data.result
        }
      })
      console.log(Dataresult)
      return Dataresult
    },
    // 省市区数据动态加载
    async loadCityData(selectedOptions) {
      console.log(selectedOptions)
      const targetOption = selectedOptions[selectedOptions.length - 1]
      // 加载标识
      targetOption.loading = true
      const CityData = []
      const Provi = await this.ProvincesData(selectedOptions[selectedOptions.length - 1].value) //  用selectedOptions中最新的数据id 请求
      await Promise.all(
        Provi.map(async (item) => {
          CityData.push({
            value: item.regionalId, // ID
            label: item.regionalName, // name
            isLeaf: Object.keys(item.regionalId).length == 3 || Object.keys(item.regionalId).length == 5 ? false : true, // 判断ID的字符串长度 确定是否有下一级 此处有三级
          })
        })
      )
      targetOption.children = CityData // 将值赋给children
      console.log(targetOption.children)
      // console.log(this.Provinces)
      this.Provinces = [...this.Provinces]  // 集合在Provinces
      // 取消加载标识
      targetOption.loading = false 
    },
  },
}
</script>

在这里插入图片描述

数据格式

在这里插入图片描述

多级选择 isLeaf:false 要显示必加 不显示为true

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值