
一、前言
在 Geejing WebBuilder 低代码快速开发平台中,左侧文件树、IDE开发树、首页菜单树、权限模块树,全部依赖底层 FileSystem.listFiles 方法统一渲染。该方法是平台文件系统的核心入口,支持多场景差异化展示、权限过滤、自定义排序、菜单隐藏控制,是低代码页面资源管理的底层基石。本文结合源码详解文件列表渲染逻辑与业务适配规则。
listFiles 是平台文件系统的核心查询方法,支持根据不同场景类型(IDE/首页/权限/文件列表)过滤文件、控制显示隐藏、自定义排序方式,完美适配平台全业务文件展示需求。
支持四大核心场景:
sortType ??= 'name';
let ideMode = type == 'ide',
homeMode = type == 'home',
permMode = type == 'perm';代码默认按文件名称排序,同时通过场景变量区分渲染模式,为后续差异化过滤提供判断依据。
if (ideMode && path == null) {
if (isDemo) {
Wb.send({
items: [
{ text: Str.module, icon: 'menu1', _expanded: true, path: Base.modulePathText,
items: this.listFiles(Wb.File.moduleFolder, type, sortType, sortDesc, moduleSort)
},
{ text: Str.app, icon: 'cubes', path: Base.pathText }
]
});
}
return;
}演示环境下 IDE 树仅展示模块与应用目录,屏蔽系统目录,保证演示环境安全性与简洁性,正式环境会额外展示 system 系统目录。
// 隐藏index.json配置文件
if (inModuleFolder && isFile && filename == 'index.json')
return;
// 过滤最小化编译文件
if ((ideMode || homeMode || permMode) && inAppFolder && file.isMinFile)
return;平台自动屏蔽配置文件、编译冗余文件,保证开发者看到的文件树干净整洁,同时不影响底层功能运行。
FileSystem 列表渲染机制实现了一套源码、多场景适配,无需为不同页面单独写渲染逻辑,极大降低平台维护成本。同时内置权限过滤、菜单隐藏、文件过滤能力,从底层保障低代码平台的安全性与规范性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。