需求:

对树有title的点击效果,右侧有说明文字 和 按钮能点击,不能右键,系统用的壳已经有右键了。

出现的问题:

viewui的tree有两年没更新了,对ui这块,是采取的render自定义,但是它外层包裹了title,包括事件等等。导致右侧再加按钮就会在title里面。

问题2: 单行背景通下来

这个是由于用的折叠面板 ul li 从这个层级,就得修改css

临时效果

代码部分 node.vue



viewui源码 都copy过来

SubModeTree.vue

<template>
<div>
<div style="height: 34px; border-bottom: 1px solid #e5e5e5;">
<div style="float: left; font-size: 16px; font-weight: bold; padding: 4px 0 0 10px;">XXXXXX树</div>
<div style="float: right;padding-top: 5px;">
<Checkbox v-model="subFlag">包含下级数据</Checkbox>
</div>
</div>
<div style="height: 10px;"></div>
<div style="padding: 0 10px 10px 10px; height: calc(100vh - 221px); overflow: auto;">
<TreeZen :data="treeData"
:render="renderContent"
class="tree-render-sub-mode"></TreeZen>
</div>
</div>
</template> <script>
import SubModeTreeItem from './SubModeTreeItem'
import TreeZen from '@/components/ViewuiZen/components/tree'
export default {
name: 'SubModeTree',
components: {
TreeZen
},
data () {
return {
subFlag: true,
treeData: [],
treeDataRaw: [{ title: '全国', expand: true }]
}
},
methods: {
append (data, children) {
this.$set(data, 'children', children)
},
bindRender (arr) {
return arr.map(item => {
// item.render = this.renderItem
// item.children = []
return item
})
},
renderContent (h, { root, node, data }) {
return h(SubModeTreeItem, {
props: {
item: data
}
})
}
},
created () {
let t = [...this.treeDataRaw]
// t[0].children = this.bindRender(this.treeDataRaw)
this.append(t[0], [{ title: '北京市' }, { title: '天津市' }, { title: '广东省' }, { title: '河北省' }])
this.append(t[0].children[1], [{ title: '和平区' }, { title: '南开区' }]) this.treeData = [...t]
console.info('treeData', this.treeData)
},
mounted () { }
}
</script> <style>
.tree-render-sub-mode .ivu-tree-title {
/*width: 95%;*/
}
</style>

SubModeTreeItem.vue

<template>
<span class="subModeTreeBg" style="height: 30px; line-height: 30px; font-size: 14px;">
<span v-if="item.isTitle" @click="titleClickHandleByTreeBySubMode">
<Icon type="ios-folder-open" size="21" color="#f2994a" style="margin-right:8px;"/>
<span>{{ item.title }}</span>
</span>
<span v-if="!item.isTitle">
<Icon type="ios-checkmark-circle" size="21" color="#27ae60"/>
同步成功
</span>
<!--<Button @click="btnClickHandleByTreeBySubMode"-->
<!--type="text" size="small" style="margin-left: 5px; color:#27ae60; position: absolute; right: 0;">--> <!--</Button>-->
</span>
</template> <script>
export default {
name: 'SubModeTreeItem',
props: {
item: {
type: Object,
default () {
return {}
}
}
},
data () {
return {}
},
methods: {
titleClickHandleByTreeBySubMode () {
console.info('titleClickHandleByTreeBysubMode item', this.item)
},
btnClickHandleByTreeBySubMode () {
console.info('btnClickHandleByTreeBySubMode item', this.item)
}
}
}
</script> <style>
.ivu-tree-title-selected {
} .ivu-tree-title-selected .subModeTreeBg {
/*background-color: #2db7f5;*/
} .ivu-tree-arrow {
margin-top: 5px;
}
</style>

来源 版本号 4.6.1

viewui 的版本号,用的这版copy的,以后要是再有组件,就不用把环境再copy一遍了,就光把相关的组件copy上就ok了。

20210720 日志更新

获取selected 解决方案

点击事件获取 selected 数据不准,经查看,是因为点击事件的时候,数据还没有进行改变。点击事件后,数据进行的改变。

解决方案: 延时获取数据

titleClickHandle (item, root) {
// 点击事件后,数据selected状态进行更改,但是点击的时候,数据还没有更改,所以延时获取selected
setTimeout(() => {
const selected = root.filter(d => d.nodeKey === item.nodeKey)[0].node.selected
console.info('selected', selected)
}, 20)
},

click 点击范围问题

问题:因为tree的点击事件有两套 一套在外层 node.vue 里面



里面的click



解决方案:外层的padding设置为0

padding换到里面

这个的难点在于发现此bug,我也是无意间点到的。

viewui tree 自定义化(源码copy出来改动)#添加 获取selected 解决方案的更多相关文章

  1. Android必学-异步加载+Android自定义View源码【申明:来源于网络】

    Android必学-异步加载+Android自定义View源码[申明:来源于网络] 异步加载地址:http://download.csdn.net/detail/u013792369/8867609 ...

  2. Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性) 前言:由于前段时间忙于写接口,在接口中需要做很多的参数校验,本着简洁.高效的原则,便写了这个小工具供自己使用(内容 ...

  3. spring security 授权方式(自定义)及源码跟踪

    spring security 授权方式(自定义)及源码跟踪 ​ 这节我们来看看spring security的几种授权方式,及简要的源码跟踪.在初步接触spring security时,为了实现它的 ...

  4. Spring事务源码解析(二)获取增强

    在上一篇文章@EnableTransactionManagement注解解析中,我们搭建了源码阅读的环境,以及解析了开启Spring事务功能的注解@EnableTransactionManagemen ...

  5. jquery-ui-datepicker定制化,汉化,因手机布局美观化源码修改

    感谢浏览,欢迎交流=.= 公司微信网页需要使用日历控件,想到jquery-mobile,但是css影响页面布局,放弃后使用jquery-ui-datepicker. 话不多说,进入正题: 1.jque ...

  6. select2插件改造之设置自定义选项 源码

    改造特性: 适应业务需要,选项里面包含“其他”其它”,可以点击填写并设置自定义选项 效果图: 具体代码不做阐述,如有类似需求,请私信.主要源码: /* Copyright 2012 Igor Vayn ...

  7. recovery编译汉化源码开源地址

    本Recovery基于xiaolu开源的不完全汉化版源码,进行完全汉化,并合并Philz的最新源码. 汉化耗费我将近一整天的精力,纯手打,可能有遗漏或翻译不准的地方,请到微博反馈 本Rec完全开源,便 ...

  8. 基于zuul实现自定义路由源码分析

    ZuulFilter定义 通过继承ZuulFilter我们可以定义一个新的过滤器,如下 public class IpAddressFilter extends ZuulFilter { @Autow ...

  9. adaptiveThreshold自适应二值化源码分析

    自适应二值化介绍: 二值化算法是用输入像素的值I与一个值C来比较,根据比较结果确定输出值. 自适应二值化的每一个像素的比较值C都不同,比较值C由这个像素为中心的一个块范围计算在减去差值delta得到. ...

  10. Universal-Image-Loader源码解解析---display过程 + 获取bitmap过程

    Universal-Image-Loader在github上的地址:https://github.com/nostra13/Android-Universal-Image-Loader 它的基本使用请 ...

随机推荐

  1. 【深度学习项目二】卷积神经网络LeNet实现minst数字识别

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

  2. SpringCloud-02-Nacos注册中心

    Nacos注册中心 1.认识Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件.相比Eureka功能更加丰富,在国内受欢迎程度较高. 2.安装Nacos 1 1.下载安装 ...

  3. Spring自带的这11个工具类,真香!

    前言 最近有些小伙伴,希望我分享一些好用的工具类,帮他们提升开发效率. 今天这篇文章专门跟大家一起总结一下,Spring框架本身自带的一些好用的工具类,希望对你会有所帮助. 1 Assert 很多时候 ...

  4. electron 安装不同的版本的方法

    1.官网:http://www.electronjs.org/ 2.思考,既然是npm 安装,那么肯定也在 npm中央仓库有,那么去中央仓库看下: npm i -D electron@11.0.4

  5. QT C++工程CI环境笔记

    开发环境 Ubuntu18.04 or Ubuntu20.04 Qt Creator 4.6.x (Based on Qt 5.11.x) APT list: apt-transport-https ...

  6. Js中的逻辑运算符

    Js中的逻辑运算符 JavaScript中有三个逻辑运算符,&&与.||或.!非,虽然他们被称为逻辑运算符,但这些运算符却可以被应用于任意类型的值而不仅仅是布尔值,他们的结果也同样可以 ...

  7. Swoole从入门到入土(17)——WebSocket服务器[成员函数与配置选项]

    这一节,我们重点了解websocket server的成员函数以及相关的配置选项. 1.成员函数 push:向 WebSocket 客户端连接推送数据,长度最大不得超过 2M. Swoole\WebS ...

  8. haproxy ssl证书配置

    通常情况下,web应用程序的ssl证书放置于nginx的服务器,但很多时候前面会加一次负载均衡,使用HAProxy可以实现https的证书安全,从客户浏览器到HAProxy代理服务器之间为ssl加密传 ...

  9. oracle 游标变量ref cursor详解

    一 介绍      像游标cursor一样,游标变量ref cursor指向指定查询结果集当前行.游标变量显得更加灵活因为其声明并不绑定指定查询. 其主要运用于PLSQL函数或存储过程以及其他编程语言 ...

  10. "explicit" 的使用

    今天在编译项目时,代码审查提示 "Single-parameter constructors should be marked explicit" 于是就在构造函数前加上 expl ...