//<template>中定义的样式
<el-cascader
:options="powerRegionNew" //数据结构
:props="{ checkStrictly: true, expandTrigger:'hover',emitPath: false}"
ref="elcascader"
v-model="zzmc"
:show-all-levels="false"
>
<template slot-scope="{ node, data }">
<div @click="cascaderClick(data)">
<span>{{ data.label }}</span>
<span v-if="!node.isLeaf">({{ data.children.length }})</span>
</div>
</template>
</el-cascader>
data() {
return {
powerRegionNew: [],//后端接口返回的数据,结构看下
//powerRegionNew:[ { "label": "广东", "value": "440000", "children": [{ "label": "广州",
"value": "440100" }, { "label": "深圳", "value": "440300" }] },
{ "label": "宁夏", "value": "640000", "children": [{ "label": "银川",
"value": "640100" }] }
zzmc: undefined,
}
//设置监听选择器值变化的时候,把 dropDownVisible 属性设置为 false 即可。
watch:{
zzmc(){
if (this.$refs.elcascader) {
this.$refs.elcascader.dropDownVisible = false;
}
}
}
//任意选择(父级也可)
methods: {
cascaderClick(nodeData) {
this.zzmc = nodeData.label;
//如果你需要传字段给接口用(nodeData.label),如果你需要传编码(nodeData.value)
this.$refs.cascader.checkedValue = nodeData.value;
this.$refs.cascader.computePresentText();
this.$refs.cascader.toggleDropDownVisible(false);
},
}