处理Cascader 级联选择器数据

<template>
    <el-cascader
    v-model="gathers"
    :options="options"
    :props="props"
    @change="test"
    clearable></el-cascader>
</template>

<script>
export default {
  data() {
      return {
        gathers:[],
        dealData:[],
        props: { multiple: true },
        options: [{
          value: "东南",
          label: '东南',
          children: [{
            value: '上海',
            label: '上海',
            children: [
              { value: '普陀', label: '普陀' },
              { value:'黄埔', label: '黄埔' },
              { value: '徐汇', label: '徐汇' }
            ]
          }, {
            value: '江苏',
            label: '江苏',
            children: [
              { value: '南京', label: '南京' },
              { value: '苏州', label: '苏州' },
              { value:  '无锡', label: '无锡' }
            ]
          }, {
            value: '浙江',
            label: '浙江',
            children: [
              { value: '杭州', label: '杭州' },
              { value:  '宁波', label: '宁波' },
              { value: '嘉兴', label: '嘉兴' }
            ]
          }]
        }, {
          value: '西北',
          label: '西北',
          children: [{
            value: '陕西',
            label: '陕西',
            children: [
              { value:  '西安', label: '西安' },
              { value: '延安', label: '延安' }
            ]
          }, {
            value: '新疆维吾尔族自治区',
            label: '新疆维吾尔族自治区',
            children: [
              { value:'乌鲁木齐', label: '乌鲁木齐' },
              { value: '克拉玛依', label: '克拉玛依' }
            ]
          }]
        }]
      };
    },
    methods:{
      test(){
        let result=[];
        let cloneData=this.gathers.map(item=>{
          let res=item.slice(0)
          return[...res]
        });
        for(let i=0;i<cloneData.length;i++){
          let transData=cloneData[i].shift()
          this.dealData=cloneData
        };
        let getIndex=function(result,arr){
          for (let i = 0; i < result.length; i++) {
            if (result[i]&&result[i][0]==arr[0]) {
              return i;
            }
          }
          return -1
        };
        let merge=function(arr1,arr2){
          for (let i = 1; i < arr2.length; i++) {
            arr1.push(arr2[i])
          }
        };
        for (let i = 0; i < this.dealData.length; i++) {
         let index=getIndex(result,this.dealData[i])
         if (index>=0) {
          merge(result[index],this.dealData[i])
         }else{
          result.push(this.dealData[i])
         }
        }
        console.log(result);
      }
    }
}
</script>

<style>

</style>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值