当前位置: 首页 > article >正文

微信小程序实现简单的树形选择控件------treeSelect

前段时间公司突然要写小程序,项目中有一个树形控件。我找了很久的插件和框架。没有发现小程序能用的。只能硬着头皮自己写。

老规矩,先贴图
在这里插入图片描述

  • 为什么要特意强调此图标呢?
  • 因为该图标为中间状态。此处是我后期要优化的地方,在下面的代码中还未实现。我有了初步的思考。
    我的代码中设定(以网络部为例)
  • 0 该部门成员全部未选中
  • 1 该部门成员全部选中
  • -1 该部门成员至少选中一人切少于部门总人员数

好了,下面我们来实现树形结构的全选和零选中状态

  • 首先是树形组件的代码
    components文件夹下创建tree-select文件夹,选择新建component。命名为index

index.wxml文件

<view id="treeItem"><block wx:for="{{treeList}}" wx:key="deptId"><view  class="tree-item" style="margin-left: {{depth*40}}rpx" data-id="{{item.deptId}}" data-is-check="{{item.isCheck}}" catchtap="handleClick" ><!-- 全选 --><view class="iconfont iconxuanzhong" wx:if="{{item.isCheck == 1}}" style="color: #007AFF" ></view><!-- 未选中 --><view class="iconfont iconweixuanzhong1" wx:if="{{item.isCheck == 0}}" style="color:#000" ></view></view><!-- children --><view wx:if="{{item.children}}"><tree-select treeList="{{item.children}}" treeArray="{{treeArray}}" depth="{{depth+1}}" catchhandleClick="treeClick" id="treeItem"></tree-select></view></block>
</view>

树形组件主要用的就是递归。所以上面组件中我在组件中又调用组件自身。通过depth来判断层级关系,来实现数据的缩进。treeList为页面中传进来的人员数据,treeArrary为我清洗数据之后传过来的初始的人员选中状态的数组

index.json*

{"component": true,"usingComponenuts": {"tree-select": "/components/tree-select/index"}
}

此处要在usingComponenuts中引入组件自身

index.js

  /*** 组件的属性列表*/properties: {treeList: {type: Array,value: []},depth: {type: Number,value: 0}
http://www.lryc.cn/news/2415574.html

相关文章:

  • 干啥啥不行,摸鱼第一名
  • Dell BIOS/CMOS设置诠释
  • 干货分享新华三、华为、思科认证,到底选择哪一个?
  • 程序员常见系统错误代码大全:1到15841
  • echarts中国旅客迁徙地图
  • 使用virtualbox虚拟安装macos
  • 飞刀篮球搜众神推球,Linux 误删文件恢复命令及方法
  • 同步推上传破解ipa方法
  • 2021兴宁高考成绩查询,兴宁2021中考录取分数线查询
  • <img src=“x“ onerror=“alert(1)“>
  • android 人脸检测_人脸识别SAFR:“AI课堂”解锁线上课堂刷脸新花样
  • owasp core rules sets规则集深度分析与测试
  • cellfun函数使用方法 matlab,matlab中cellfun函数
  • VB中dim与set的区别
  • python pdb调试工具详解
  • ZigBee介绍
  • 坚果nuts 加速 官网_坚果R2手机发布 Smartisan OS 8.0公布推送计划
  • 计算机毕业设计django+vue基于技术的招聘网站系统设计与开发【开题+论文+程序】
  • 《计算机工程》2023投稿记录
  • python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频
  • 支付宝SDK出现 'openssl/rsa.h' file not found
  • WPF 基础控件之托盘
  • 合成大西瓜小程序小游戏源码,仅供学习
  • 关于cvSnakeImage函数的问题
  • EDKII vUDK 2018 在linux下安装
  • 神奇输入法Fleksy免费开放Fleksy SDK,已集成多款应用
  • 服务器入门使用
  • Linux应用程序管理(rpm yum 源码安装)
  • 中医院信息管理系统(源码+开题报告)
  • Winform中用bindingNavigator和bingdingSource实现分页