最简单的网站开发国际化,网页设计意图怎么写,北京网站备案域名,网站正在紧急建设中需求#xff1a;按照权限管理配置的数据权限树展开#xff1b;点击查看按钮后进入其他指定机构选择弹窗为一树形结构 本文章对项目中出现得关键点进行总结。
一、实现如上树形列表
在 element 官方表格示例中#xff0c;实现树形表格列表数据渲染#xff0c;非常简单。只…需求按照权限管理配置的数据权限树展开点击查看按钮后进入其他指定机构选择弹窗为一树形结构 本文章对项目中出现得关键点进行总结。
一、实现如上树形列表
在 element 官方表格示例中实现树形表格列表数据渲染非常简单。只需要按部就班替换相关的数据即可。 但是很明显我们这个项目中的需求除了树形列表外还有一些非常规的需求想拿板砖拍死产品的心都有了有没有想过开发啥感受好不好实现。没有办法还是得硬着头皮上谁让咱没有话语权说干就干着手研究。这个过程一定要跟后端商量好交互的数据格式不然自己干自己的你最后会很痛苦PS最好有一个靠谱的经验丰富的后端来配合你能让你节省很多时间少走很多弯路。
1.1 首先要就是渲染树形列表
很简单直接贴代码
el-table:datatableDatastylewidth: 100%row-keyidlazy:tree-props{children: children, hasChildren: hasChildren}el-table-column typeindex label序号/el-table-columnel-table-column propname label名称/el-table-columnel-table-column propone_level/el-table-columnel-table-column proptwo_level/el-table-columnel-table-column propthree_level/el-table-columnel-table-column propfour_level /el-table-columnel-table-column propoperation label其他指定机构/el-table-column
/el-table1.2 然后通过插槽处理头部标题
这里的数据只需要渲染名称一行后面全部都是选框所以就是头部那里也需要重新去搞一下。 el-table 本身是带有 typecheckbox 属性来实现复选功能的当时就尝试了四个但是你需要实现互斥关系并且还需要加一些文字自带的就多少有点不够用了。 所以这个使用采用插槽 #header 去重写头部并使用 el-radio 填充实现单选互斥效果代码如下
在这里插入代码片1.3 再通过插槽处理表格body体内容
同样body体通过默认插槽配置对应的内容和选框这个时候我采用的是el-checkbox通过样式穿透改其样式让它在页面看起来更加符合产品设计要求。代码如下
在这里插入代码片1.4 让body体中的选框和表头中的选框产生关联
表头互斥代表这一但选中其中一个表头只能选择body体中当前列的选框内容这个时候我根据表头的选择禁用非当前列。 当然如果有特殊需求你可以适当的自己修改一下。
在这里插入代码片二、将 el-tree 整棵树设为禁用状态
element 官方给出的示例中是给部分 tree 节点通过 disabled 属性设置禁用状态。它所写的仅是一段静态代码如果是后端返回得数据很多我们想要在查看状态下禁用所有树形节点显然非常麻烦需要处理大量的数据。 所以这里通过巧用 props 属性来实现树形节点的禁用效果。
el-treerefpermissionTree:datapermissionTree:show-checkboxshowCheckboxnode-keykeyId:propsdefaultProps
/el-treedata() {return {defaultProps: {label: labelName,children: childrenList,disabled: this.isDisabled,}}
},
methods: {isDisabled() {return this.$route.params.type view ? true : false;}
}