<el-cascader
        v-model="card.bankCity"
        :options="options2"
        :disabled="isDetail"
        :props="props"
        placeholder="请选择开户城市"
        style="width:15rem;"
        @expand-change="handleItemChange"
      />

// 获取级联省市区
const cityIndex = ref<number>(0)
const assignment = ref('')
const getCity = async(id?:string, status?:any, resolve?:any) => {
  let param
  if (id) {
    param = {
      top_id: id
    }
  } else {
    param = ''
  }
  interface District{
    value:string
    label:string
    cities:District[]
  }
  await getDistrict(param).then((res) => {
    const dataCopy = res.data
    console.log('开户城市数据', dataCopy)

    if (id) {
      if (dataCopy.length && dataCopy[0].DistrictLevel === 2) {
        options2.value.map((item:any, index:number) => {
          if (item.value === id) {
            item.cities = dataCopy.map((it:any) => ({
              value: it.Id.toString(),
              label: it.District,
              cities: [],
              leaf: false
            }))
            cityIndex.value = index
          }
        })
      } else if (dataCopy.length && dataCopy[0].DistrictLevel === 3) {
        options2.value[cityIndex.value].cities.map((cityItem:District) => {
          if (cityItem.value === id) {
            cityItem.cities = dataCopy.map((item:any) => ({
              value: item.Id.toString(),
              label: item.District,
              leaf: true // 设置为true即可在第三层结束选择,不进行下一层的加载
            }))
          }
        })
      }
    } else {
      options2.value = []
      dataCopy.map((item:any) => {
        if (item.DistrictLevel === 1) {
          options2.value.push({
            value: item.Id.toString(),
            label: item.District,
            cities: [],
            leaf: false // 设置为false时则是选择加载下一层
          })
        }
      })
    }
    assignment.value = status
    if (status === 'assignment2') {
      card.value.bankCity = bankCityArr.value
    }
  })
}

// 选择的城市
const handleItemChange = (val:any) => {
  console.log('000', val)
  for (const i in val) {
    if (typeof val[i] === 'string') {
      getCity(val[i])
    }
  }
}
GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45 7 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐