salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态
项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样。

以Goods__c表为例,申请者申请的一些采购以前需要得到批准,申请者列表需要显示所有的申请记录,状态(Status__c)有以下情况:
直线经理审批;
部门经理审批;
总经理审批;
审批通过。
实现上述方式主要实现思路:首先通过css画出来审批的步骤图,没有到达的灰色显示,经过或者正在步骤绿色显示,比如当前步骤为部门经理审批,则直线经理审批和部门经理审批节点为绿色,总经理审批和审批通过节点为灰色。然后通过jquery对'查看'设置onmouseenter以及onmouseleave事件,当onmouseenter时,显示状态的div,当onmouseleave时,移出状态的div。
代码如下:
1.Controller代码:初始化数据
public without sharing class GoodsShowStatusController {
public List<Goods__c> goodsList{get;set;}
public GoodsShowStatusController() {
initData();
}
public void initData() {
goodsList = [select Id,GoodsName__c,GoodsPrice__c,Status__c from Goods__c limit 10];
}
}
2.VF代码:显示数据并且通过jquery和css实现效果
<apex:page controller="GoodsShowStatusController"> <style type="text/css">
.steps {
position: relative;
margin-bottom: 30px;
counter-reset: step;
} .steps li {
list-style-type: none;
font-size: 12px;
text-align: center;
width: 15%;
position: relative;
float: left;
} .steps li:before {
display: block;
content: counter(step);
counter-increment: step;
width: 32px;
height: 32px;
background-color: #019875;
line-height: 32px;
border-radius: 32px;
font-size: 16px;
color: #fff;
text-align: center;
font-weight: 700;
margin: 0 auto 8px auto;
} .steps li ~ li:after {
content: '';
width: 100%;
height: 2px;
background-color: #019875;
position: absolute;
left: -50%;
top: 15px;
z-index: -1;
} .steps li.active:after {
background-color: green;
} .steps li.active ~ li:before,.steps li.active ~ li:after {
background-color: gray;
} .goodsStatusShow {
line-height: 18px;
position: relative;
} .goodsStatusShow div {
display: none;
position: absolute;
left: 0px;
top: 0px;
z-index: 1000;
} .goodsStatusShowDetail {
width: 800px;
border: 1px #C3A459 solid;
background-color: #FFFEED;
padding: 5px
}
</style> <apex:includeScript value="{!$Resource.JQuery2}" />
<script type="text/javascript">
$(function(){
$('.goodsStatusShow').mouseenter(function(){
$(this).find('div').slideDown("fast");
});
$('.goodsStatusShow').mouseleave(function(){
$(this).find('div').slideUp("fast");
});
});
</script>
<apex:pageBlock >
<apex:pageBlockTable value="{!goodsList}" var="goods">
<apex:column headervalue="流程图查看">
<apex:facet name="header">当前步骤测试样例</apex:facet>
<div class="goodsStatusShow">
查看
<div class="goodsStatusShowDetail">
<ul class="steps">
<li class="{!IF(goods.Status__c == '直线经理审批','active','')}">直线经理审批</li>
<li class="{!IF(goods.Status__c == '部门经理审批','active','')}">部门经理审批</li>
<li class="{!IF(goods.Status__c == '总经理审批','active','')}">总经理审批</li>
<li class="{!IF(goods.Status__c == '审批通过','active','')}">审批通过</li>
</ul>
</div>
</div>
</apex:column>
<apex:column headervalue="商品名称">
<apex:outputField value="{!goods.GoodsName__c}" />
</apex:column>
<apex:column headervalue="商品价格">
<apex:outputField value="{!goods.GoodsPrice__c}" />
</apex:column>
<apex:column headervalue="商品所处审批流程">
<apex:outputField value="{!goods.Status__c}" />
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
效果展示:
1.流程为部门经理审批的效果图显示

2.流程为总经理审批的效果图显示

总结:此篇主要在业务上描述如何实现更好的UI效果,主要用到的技术其实是css和jquery的居多,篇中显示样式在baidu上copy一些,有需要的可以在此基础上进行更改,有问题的地方欢迎指正,有问题的欢迎留言。
salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态的更多相关文章
- salesforce 零基础学习(十六)Validation Rules & Date/time
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...
- salesforce零基础学习(九十六)Platform Event浅谈
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...
- salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_ke ...
- salesforce 零基础学习(十九)Permission sets 讲解及设置
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...
- salesforce 零基础学习(十八)WorkFlow介绍及用法
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...
- salesforce零基础学习(一百零五)Change Data Capture
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...
- salesforce 零基础学习(六十八)http callout test class写法
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
随机推荐
- 如何使用android百度地图离线地图
1.首先把离线地图放在android工程下的assets里面. 注意:建议离线地图下载通过百度地图APIDEMO去下载,因为到官网上下载的离线地图文件格式不一样,APIDEMO的格式是.dat,而官网 ...
- 浩瀚PDA开单器-结束手工开单模式【百货、商超】PDA安卓智能手持POS 进销存管理系统移动收银管理软件
移动销售终端:先进的跨平台技术,支持智能PDA等移动终端提供移动销售开单.移动POS.移动查询货品.移动盘点等功能. 移动开单器的操作说明 第一步:选客户 Ø 用户在空白开单主页左划屏幕 ...
- 微服务中的netty
一般使用netty主要是整个netty流程的理解,实际开发中服务端.客户端参数的配置,以及连接 handle的管理是关键,再有就是encode和decode编码.解码. 服务端流程图 客户端流程图包含 ...
- 常用CSS缩写语法总结
使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如:#000000可以缩写为#000;#336699可以缩 ...
- 前端CSS规范整理_转载、、、
一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core 通用U ...
- java-并发-不可变对象
浏览以下内容前,请点击并阅读 声明 当一个对象创建后的状态不可改变时就认为其为不可变对象,尽可能地利用不可变对象被公认为是构建简单可靠代码的有效方法.不可变对象在并发程序中比较有用,由于其状态无法改变 ...
- php备份数据库
php备份数据库原理和方法 原理 查找所有表 查找所有字段,列出所有字段名 字段类型等信息 查找所有数据 读取后注意特殊符号转换addslashes() 生成sql 把数据库格式化生成对应sql 相关 ...
- 搭建ssm的领悟
今天搭建了ssm,但是一直报错误 "Cannot load JDBC driver class 'com.mysql.jdbc.Driver" 我以为是版本的问题就换,以为是路径加 ...
- volatile不能保证原子性
1.看图自己体会 2.体会不了就给你个小程序 package cs.util; public class VolatileDemo { private volatile int count =0; p ...
- 使用sublime text 开发node.js
http://blog.csdn.net/jwkfreedom/article/details/8450005 本机环境: windows7 64位 1. 下载安装sublime text, 不用注册 ...