先上效果图:
效果为:鼠标放到选择城市菜单上弹出下一级城市菜单,点击当前城市菜单则选中,并且选择面板消失。
1、全局样式修改,找到App.js加入以下样式代码:
/**
*以下样式将单选框隐藏,并绝对定位与文字内容一样大小,这样点击时可以点击整行文字。
*/
<style lang="scss">
.el-cascader-panel .el-radio {
width: 132px;
height: 34px;
line-height: 34px;
padding: 0 10px;
z-index: 10;
position: absolute;
}
.el-cascader-panel .el-radio__input {
visibility: hidden;
}
.el-cascader-panel .el-cascader-node__postfix {
top: 10px;
}
</style>
2、找到el-cascader组件使用的地方:
<template>
<el-form :model="formValue">
<el-form-item label="集团省市:">
<el-cascader
ref="cascader" // 必填
v-model="formValue.provinces"
placeholder="请选择"
:options="options"
:props="{ checkStrictly: true, expandTrigger: 'hover' }" //必填
@change="cascaderChange" //必填
clearable
filterable
>
</el-cascader>
</el-form-item>
</el-form>
</template>
<script>
export default {
methods: {
cascaderChange(values) {
// 选择之后将下拉界面收起
this.$refs.cascader.toggleDropDownVisible();
// 还可以获取labels值
const labels = this.$refs.cascader.getCheckedNodes()[0].pathLabels;
console.log(values); // ["11", "1101", "110101", __ob__: Observer]
console.log(labels); // ["北京市", "北京市", "东城区", __ob__: Observer]
}
}
};
</script>