去年经手的一个项目有个需求是,在主页增加一个快速报表的入口以及操作手册的入口,因为项目是基于Lightning的所以自然是通过组件方式,在主页中拿一个富文本放入页面中,在富文本中,添加a链接 很快就完成了,但后面的问题也产生了,每次刷的Sandbox 那些链接都是跳转到正式环境,另一个当初只有几个主页,随着时间的过去,主页多了,维护工作量也大,且低效,打开App Builder是个耗时工作,富文本加载非常慢.正好看了下SFDX的相关东西,于是就把这两个合并做个Demo.
-
通过IDEA(Illuminated Cloud 插件)创建一个SFDX项目,填写项目名称,目录默认是force-app
-
创建OR绑定一个Scratch Org(有效期最多好像是30天,不确定,填写大于30天就会限定30),点击+号创建,在Connection 中可以选择一个已经存在的
-
选择绑定的Scratch Org
-
在终端通过命令查看Org列表
-
项目结构如截图config是Scratch Org的配置 force-app是存放元数据目标 sfdx-project.json 是项目配置文件,登录地址api版本
-
创建QuickLink 组件 代码很简单,就是一个卡片,lightning:layoutItem 布局
QuickLink.design 中提供在App Builder中可配置属性,定义 类型是报表还是文件,显示1列还是2列,组件Id等,具体见文 未代码
控制类只一个初始化加载方法,加载数据显示在前台
Helper类中只有一个加数据的方法,将结果设置到前台属性中(引用了一个ServerActionService组件封装请求来源于Implement and Use Lightning Service Components )
-
创建Apex类 Apex类中,通过前台传的参数,查询数据给前台
-
配置数据采用自定义元数据,报表可以配置文件夹,文件暂时只支持查询某个Library下的所有文件,没有采用文档是因为文档只能上传最大5M
配置的数据
-
通过 push/pull 菜单推送本地代码与拉取元数据
-
目前发现一个不好的点是,如果推送失败了,只会告诉你失败,没有提示信息,有时有,在apex有错误时要好些,但是cmp有错误,效果就没有那么好,所以有时要通过控制台push下
-
如果在推送时报没有权限,通过config list看下有没有配置本地,通过IDEA创建的临时Org是不会的
设置某个临时组件为默认
-
在主页中配置组件,也可以在其它页面中
效果如下 两列情况
一列情况
放到Account页面布局
-
文件没有测试,在这个临时Org中创建了库,但是不显示,再创建时提供该api已经存在,不知为何.
-
需要完善的是,如果报表名过长没有处理,需要省略显示,悬浮显示
-
代码见 github
-
点击部署,然后跳转到一个界面,授权登录devhub,然后开始自动创建临时Org,并部署
-
部署成功截图
-
登录到临时Org查看是否可以运行正常 页面已经部署了,为了测试设置为组织默认
-
正常显示,数据都过来了
-
项目中一定要有project-scratch-def.json这个,否则会提示没有这个文件无法创建临时Org,这一点就体现sfdx的便捷,以前是要把代码复制,现在通过部署就可以.