项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使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 零基础学习(四十六)动态美观显示列表中记录的审批状态的更多相关文章

  1. salesforce 零基础学习(十六)Validation Rules & Date/time

    上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...

  2. salesforce零基础学习(九十六)Platform Event浅谈

    本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...

  3. salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_ke ...

  4. salesforce 零基础学习(十九)Permission sets 讲解及设置

    Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...

  5. salesforce 零基础学习(十八)WorkFlow介绍及用法

    说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...

  6. salesforce零基础学习(一百零五)Change Data Capture

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...

  7. salesforce 零基础学习(六十八)http callout test class写法

    此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...

  8. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...

  9. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

随机推荐

  1. 如何使用android百度地图离线地图

    1.首先把离线地图放在android工程下的assets里面. 注意:建议离线地图下载通过百度地图APIDEMO去下载,因为到官网上下载的离线地图文件格式不一样,APIDEMO的格式是.dat,而官网 ...

  2. 浩瀚PDA开单器-结束手工开单模式【百货、商超】PDA安卓智能手持POS 进销存管理系统移动收银管理软件

    移动销售终端:先进的跨平台技术,支持智能PDA等移动终端提供移动销售开单.移动POS.移动查询货品.移动盘点等功能. 移动开单器的操作说明 第一步:选客户 Ø        用户在空白开单主页左划屏幕 ...

  3. 微服务中的netty

    一般使用netty主要是整个netty流程的理解,实际开发中服务端.客户端参数的配置,以及连接 handle的管理是关键,再有就是encode和decode编码.解码. 服务端流程图 客户端流程图包含 ...

  4. 常用CSS缩写语法总结

    使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如:#000000可以缩写为#000;#336699可以缩 ...

  5. 前端CSS规范整理_转载、、、

    一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core 通用U ...

  6. java-并发-不可变对象

    浏览以下内容前,请点击并阅读 声明 当一个对象创建后的状态不可改变时就认为其为不可变对象,尽可能地利用不可变对象被公认为是构建简单可靠代码的有效方法.不可变对象在并发程序中比较有用,由于其状态无法改变 ...

  7. php备份数据库

    php备份数据库原理和方法 原理 查找所有表 查找所有字段,列出所有字段名 字段类型等信息 查找所有数据 读取后注意特殊符号转换addslashes() 生成sql 把数据库格式化生成对应sql 相关 ...

  8. 搭建ssm的领悟

    今天搭建了ssm,但是一直报错误 "Cannot load JDBC driver class 'com.mysql.jdbc.Driver" 我以为是版本的问题就换,以为是路径加 ...

  9. volatile不能保证原子性

    1.看图自己体会 2.体会不了就给你个小程序 package cs.util; public class VolatileDemo { private volatile int count =0; p ...

  10. 使用sublime text 开发node.js

    http://blog.csdn.net/jwkfreedom/article/details/8450005 本机环境: windows7 64位 1. 下载安装sublime text, 不用注册 ...