<el-cascader ref="cascadeRef" v-model="modelValue" class="un-cascader" :props="cascadeProps"
@change="cascadeChange" @visible-change="visibleChange" @expand-change="expandChange"
v-bind="$attrs"
v-on="$listeners"/>
function visibleChange(v) {
if (v) {
// 单选框添加点击整行选中
if (props.clickNode && props.setCascadeProps.checkStrictly) {
setNodes()
}
}
}
function expandChange(val) {
if (!val.length) return
nextTick(() => {
setNodes()
})
}
function setNodes() {
const nodes = cascadeRef.value.$refs.panel.$refs.menu
for (let i = 0; i < nodes.length; i++) {
const node = nodes[i]
const isAdd = node.$el.dataset['isAdd'] === '1'
if (isAdd) continue
node.$el.dataset['isAdd'] = 1
const nodeChild = node.$children[0]
loopBind(nodeChild.$children)
}
}
function loopBind(children) {
for (let i = 0; i < children.length; i++) {
let item = children[i]
// 滚动条不绑定
if (!item.nodeId) continue
// 没有子节点的绑定
if (item.node.hasChildren === !1) {
item.$el.onclick = item.handleCheckChange
}
}
}
使用的vue2.7,所以是组合式api方法