<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>