100 lines
2.4 KiB
Vue
100 lines
2.4 KiB
Vue
<template>
|
||
<el-select v-model="mineStatus" placeholder="请选择区域"
|
||
multiple
|
||
collapse-tags @change="selectChange" >
|
||
<el-option :value="mineStatusValue" style="height: auto">
|
||
<el-tree :data="treedata" show-checkbox node-key="id" ref="tree" highlight-current :props="defaultProps" @check-change="handleCheckChange"></el-tree>
|
||
</el-option>
|
||
</el-select>
|
||
</template>
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
mineStatus: "",
|
||
mineStatusValue: [],
|
||
data: [
|
||
{
|
||
id: 1,
|
||
label: "江苏省",
|
||
children: [
|
||
{
|
||
id: 4,
|
||
label: "南京市"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 2,
|
||
label: "安徽省",
|
||
children: [
|
||
{
|
||
id: 5,
|
||
label: "芜湖市"
|
||
},
|
||
{
|
||
id: 6,
|
||
label: "合肥市"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
id: 3,
|
||
label: "浙江省",
|
||
children: [
|
||
{
|
||
id: 7,
|
||
label: "杭州市"
|
||
},
|
||
{
|
||
id: 8,
|
||
label: "温州市"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
defaultProps: {
|
||
children: "children",
|
||
label: "name"
|
||
}
|
||
};
|
||
},
|
||
props:{
|
||
treedata:{
|
||
type:Array,
|
||
default:undefined
|
||
},
|
||
},
|
||
methods: {
|
||
//select框值改变时候触发的事件
|
||
selectChange(e){
|
||
var arrNew = [];
|
||
var dataLength = this.mineStatusValue.length;
|
||
var eleng = e.length;
|
||
for(let i = 0; i< dataLength ;i++){
|
||
for(let j = 0; j < eleng; j++){
|
||
if(e[j] === this.mineStatusValue[i].name){
|
||
arrNew.push(this.mineStatusValue[i])
|
||
}
|
||
}
|
||
}
|
||
this.$refs.tree.setCheckedNodes(arrNew);//设置勾选的值
|
||
},
|
||
handleCheckChange() {
|
||
let res = this.$refs.tree.getCheckedNodes(true, true); //这里两个true,1. 是否只是叶子节点 2. 是否包含半选节点(就是使得选择的时候不包含父节点)
|
||
let arrLabel = [];
|
||
let arr = [];
|
||
res.forEach(item => {
|
||
arrLabel.push(item.name);
|
||
arr.push(item);
|
||
});
|
||
this.mineStatusValue = arr;
|
||
this.mineStatus = arrLabel;
|
||
// console.log('arr:'+JSON.stringify(arr))
|
||
// console.log('arrLabel:'+arrLabel)
|
||
}
|
||
}
|
||
};
|
||
</script>>
|
||
|