iview的Tree标签根据不同条件改变title颜色
我搜到的一种方法是去获取dom,然后改变classname,感觉比较麻烦,就去官网再看了下,发现有个自带的render自定义渲染,用起来比较方便。
但是使用了render之后,会影响on-select-change事件,这时候,可以不需要去纠结这个事件了,直接将title的标签改用a标签,而不是span标签,就可以去获得节点信息,都不需要去通过ref获得节点信息了。
<template>
<Tree :data="upData" :render="renderContent"></Tree>
// 需要异步加载再加个:load-data="loadData",都可以结合使用
</template>
<script>
export default {
data () {
return {
upData:[]
}
},
methods: {
getUpData() {
// ... 获取upData
},
renderContent (h, { root, node, data }) {
let col = 'red'
if (data.isEnable === 1) { // 这里可以做条件选择
col = 'green'
}
return h('span', {
style: {
display: 'inline-block',
width: '100%'
}
}, [
h('span', [
h('Icon', { // 不需要icon可以删除掉
props: {
type: 'ios-paper-outline'
},
style: {
marginRight: '8px'
}
}),
h('span', { // 如果需要配合点击事件获得节点信息,这里可以用a标签
style: {
color: col //这里设置title的颜色
}
},data.title)
]),
]);
}
}
</script>