Files
hb_pqs_web/src/views/components/elselect/treeselect.vue
2025-01-09 19:02:44 +08:00

100 lines
2.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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); //这里两个true1. 是否只是叶子节点 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>>