SAP CRM Fiori 应用和 SAP Commerce Cloud (电商云) UI 如何通过调整 CSS 来改变UI显示风格

简介: SAP CRM Fiori 应用和 SAP Commerce Cloud (电商云) UI 如何通过调整 CSS 来改变UI显示风格

这是Jerry 2021年的第 19 篇文章,也是汪子熙公众号总共第 290 篇原创文章。


本文分别针对 SAP CRM Fiori 应用和 SAP Commerce Cloud (电商云) UI,介绍两个通过更改 CSS 达到更改其 UI 显示风格的例子。


不少 SAP 产品都提供了个性化设置,允许 Key User 通过这些设置对 SAP 产品 UI 风格进行微调。下图是 SAP Cloud for Customer 个性化设置的界面。


image.png除了这些个性化设置外,更灵活的界面风格调整,通常采用二次开发的方式进行。


Jerry 2015年所在的 SAP 成都研究院 CRM Fiori 开发团队,负责一个名叫 My Opportunities 的 Fiori 应用,该应用没有采取现在流行的 Fiori Elements + CDS view 实现,而是直接采用原生的 SAP UI5 开发而成。


当时有个客户,对 Fiori 应用 Footer 工具条里的 Edit 按钮的蓝色背景色提出质疑,因为该客户使用 Android 设备访问该应用,在 Android 设备上,任何按钮被点击的瞬间,背景都会被蓝色高亮。因此当时 SAP UI5 Edit 按钮这个默认显示的蓝色背景色,让客户很难区分该按钮是否真正被点击过。


image.png因此客户联系 SAP,询问是否能够将该 Edit 按钮的蓝色背景色去掉,让其和上图右边的 Follow Up 及 Messages 按钮显示风格一致。


Jerry 接到客户的抱怨后,分析了 SAP UI5 Footer 工具条的源代码,发现 Edit 按钮的蓝色背景色是有意为之:按照 Fiori UX Guideline,Edit 按钮的语义类型是 Emphasized ( 下图第87行的代码:sap.m.ButtonType.Emphasized)


image.png搞清楚 Fiori 应用按钮背景色的实现原理之后,解决方案也就不难设计了。My Opportunities 这个 CRM Fiori 应用,在其 Footer 工具条的渲染逻辑上,留了一个 extension hook ( ABAP 开发人员可以将其理解成 SAP UI5 版本的 BAdI Definition).


最后我建议客户,实现这个 extension hook,在代码里将 SAP UI5 Footer 工具条标准的 Edit 按钮删除(下图第9行代码),然后在 hook 里自行创建一个普通的按钮 ( 第3行 ) 即可。当然这个按钮点击之后,执行的逻辑需与删除的标准 Edit 按钮完全一致,因此需要给其 onBtnPressed 属性,绑定上原始 Edit 按钮的点击事件处理函数:onEdit ( 第5行 ).


image.png关于这个客户需求的更多细节,请参考我当时写的博客.

看另一个举一反三的需求:如果客户想把 Edit 按钮旁边的 Follow Up 按钮的背景色设置成红色呢?

image.pngimage.png下面再来说说 SAP Commerce Cloud (电商云) 的 UI 显示风格调整。


不同于 SAP CRM Fiori 应用,SAP Commerce Cloud UI 基于开源框架 SAP Spartacus,后者使用 Angular 进行开发,并通过 core,Storefront 和 styles 这些库文件的方式,发布给客户使用。



image.png客户新建一个 Angular 应用,在 package.json里导入 Spartacus 库文件的依赖,就可以进行 Storefront UI 的二次开发工作了。image.pngSAP Commerce Cloud UI 这种基于 Spartacus 库文件的二次开发方式,使得其通过 CSS 调整 UI 风格的难度,同本文前半部分介绍的 SAP CRM Fiori 应用相比,要降低不少。


在 Partners 基于 SAP Spartacus 创建的 SAP Commerce Cloud UI Angular 应用里,有一个自动生成的 styles.scss 文件,里面有一行 import 语句,导入了 SAP Spartacus 所有标准的 CSS styles:


image.png我们可以在 styles.scss 文件里,对 SAP Commerce Cloud UI 的界面,按照需要进行 CSS 调整。

举个例子:假设我想调整购物车页面里这行 “ORDER SUMMARY” 的外观:image.png在 Chrome 开发者工具里,找到其对应的选择器为:cx-order-summary h4

image.pngimage.pngimage.pngimage.png为了减少工作量,避免对 Order Summary 和 Coupon 这两个区域对应的选择器,重复施加相同的 CSS 设置,我们可以将重复的 CSS 设置,定义在 %jerry-custom-div 里(类似编程语言里的宏), 然后在 cx-order-summary 和 cx-cart-coupon 里使用 @extend 直接引用这个公用定义。


image.pngimage.png

相关文章
|
14天前
|
编解码 前端开发 UED
解密CSS单位:px、em、vh的区别与应用
解密CSS单位:px、em、vh的区别与应用
27 0
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0
|
1月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
33 0
|
1月前
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
21 0
|
1月前
如何实现 CRM Attachment UI 的 Advanced 按钮
如何实现 CRM Attachment UI 的 Advanced 按钮
24 0
|
1月前
|
XML 前端开发 数据格式
CSS应用
CSS应用
16 0
|
2月前
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
97 2
|
21天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
15 1
什么是 SAP ABAP 里的 Subscreen
N..
|
1月前
|
前端开发 开发者
CSS高级应用
CSS高级应用
N..
9 0
|
1月前
SAP UI5 Link 控件的使用方法介绍 - 后续学习 Fiori Elements Smart Link 的基础试读版
SAP UI5 Link 控件的使用方法介绍 - 后续学习 Fiori Elements Smart Link 的基础试读版
15 0